Используя библиотеку Java IPAddress это просто, одна строка кода для каждого направления работает как для IPv4, так и для IPv6.Фактически, вы можете написать код, который работает как для IPv4, так и для IPv6, как в первом примере ниже.Отказ от ответственности: я являюсь менеджером проекта этой библиотеки.
Независимость от IP-версии с использованием byte [] и / или BigInteger:
IPAddress loopback = new IPAddressString("::1").getAddress();
System.out.println(loopback.getValue());
IPAddress backAgain = new IPAddressGenerator().from(loopback.getBytes());
System.out.println(backAgain);
Использование целых чисел для 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);
Использовать BigInteger для IPv6:
IPv6Address loopbackv6 = new IPAddressString("::1").getAddress().toIPv6();
System.out.println(loopbackv6.getValue());
IPv6Address backAgainv6 = new IPv6Address(loopbackv6.getValue());
System.out.println(backAgainv6);
Вывод:
1
0:0:0:0:0:0:0:1
2130706433
127.0.0.1
1
0:0:0:0:0:0:0:1