Je cherche un moyen simple de tester si le kernel prend en charge IPv6 sur Linux en C / C ++. Suffit-il de vérifier si l’appel de socket () échoue et que errno contient le code d’erreur EINVAL?
En effet, lisez ipv6 (7) : l’appel aux routines de socket (7) , notamment socket (2) et d’autres, par exemple bind (2) etc.
Vous pouvez également utiliser proc (5), par exemple read /proc/net/if_inet6
ou /proc/net/sockstat6
(je crois que cela n’existera pas si ipv6
n’est pas supporté).