IPv6 et Java : BigInteger pour faciliter la manipulation

Par:
francoistonic

lun, 06/01/2025 - 12:56

IPv6 est la nouvelle norme IP dans le monde réseau suite à la pénurie d'adresses IPv4. Les deux protocoles sont supportés par Java. IPv4 utilise un adressage 32 bits alors que IPv6 est en 128 bits. 

Comme le précise Oracle : "IPv6 dans Java est transparent et automique. Un portage n'est pas nécessaire et il n'y a pas de recompilation à faire.". Bref, tout est fait pour être le plus transparent possible et ce, depuis plusieurs années. Si vous avez besoin impérativement d'IPv4, vous pouvez configurer java.net.preferIPv4Stack en true. Il est false par défaut. 

Vous pouvez aussi avoir besoin de stocker ou de manipuler simplement les adresses IPv6. Pour ce faire, vous pouvez utiliser BigInteger pour convertir. BigInteger est une classe Java immutable ce qui est particulièrement pratique pour maniper des adresses IP sans risquer de les modifier. Bien entendu, vous pouvez convertir d'IPv6 vers BigInteger et inversement

Présentation d'Oracle : https://docs.oracle.com/javase/8/docs/technotes/guides/net/ipv6_guide/

Configuration réseau : https://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html

Tutoriel pour utiliser BigInteger : https://www.javacodegeeks.com/convert-ipv6-to-biginteger-in-java.html