Utilizzando the IPAddress Java library è semplice, una riga di codice per ogni senso funziona sia per IPv4 e IPv6. In effetti, puoi scrivere codice che funziona sia per IPv4 che per IPv6 come nel primo esempio qui sotto. Disclaimer: Sono il project manager di quella libreria.
IP-versione agnostic utilizzando byte [] e/o BigInteger:
IPAddress loopback = new IPAddressString("::1").getAddress();
System.out.println(loopback.getValue());
IPAddress backAgain = new IPAddressGenerator().from(loopback.getBytes());
System.out.println(backAgain);
Utilizzare interi per 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);
Usa BigInteger per IPv6:
IPv6Address loopbackv6 = new IPAddressString("::1").getAddress().toIPv6();
System.out.println(loopbackv6.getValue());
IPv6Address backAgainv6 = new IPv6Address(loopbackv6.getValue());
System.out.println(backAgainv6);
uscita:
1
0:0:0:0:0:0:0:1
2130706433
127.0.0.1
1
0:0:0:0:0:0:0:1
fonte
2017-12-13 19:14:01
Grazie, sembra un modo fruttuoso per esplorare.Sembra che non ci siano metodi che facciano ciò che voglio subito. – Gruber