Usando the IPAddress Java library es simple, una línea de código para cada sentido funciona tanto para IPv4 e IPv6. De hecho, puede escribir código que funcione tanto para IPv4 como para IPv6 como en el primer ejemplo a continuación. Descargo de responsabilidad: soy el gerente de proyecto de esa biblioteca.
IP versión agnóstica con el byte [] y/o BigInteger:
IPAddress loopback = new IPAddressString("::1").getAddress();
System.out.println(loopback.getValue());
IPAddress backAgain = new IPAddressGenerator().from(loopback.getBytes());
System.out.println(backAgain);
Use enteros para IPv4:
IPv4Address loopbackv4 = new IPAddressString("127.0.0.1").getAddress().toIPv4();
System.out.println(loopbackv4.intValue());
IPv4Address backAgainv4 = new IPv4Address(loopbackv4.intValue());
System.out.println(backAgainv4);
Uso BigInteger para IPv6:
IPv6Address loopbackv6 = new IPAddressString("::1").getAddress().toIPv6();
System.out.println(loopbackv6.getValue());
IPv6Address backAgainv6 = new IPv6Address(loopbackv6.getValue());
System.out.println(backAgainv6);
de salida:
1
0:0:0:0:0:0:0:1
2130706433
127.0.0.1
1
0:0:0:0:0:0:0:1
Gracias, parece una manera fructífera de explorar.Parece que no hay métodos que hagan lo que quiero de inmediato. – Gruber