Java-библиотека с открытым исходным кодом и открытым исходным кодом может сделать это за вас.Он может анализировать различные форматы IP-адресов, включая IPv4 или IPv6.Отказ от ответственности: я руководитель проекта библиотеки IPAddress.
Вот пример кода, подобного вашему:
public static void main(String[] args) {
try(Scanner scan = new Scanner(System.in)) {
System.out.print("Enter IP addresses: ");
while(true) {
String data_in = scan.next();
IPAddressString string = new IPAddressString(data_in);
IPAddress addr = string.toAddress();
System.out.println(addr + " is equivalent to " + addr.toBinaryString());
}
} catch (AddressStringException e){
System.out.println("invalid format: " + e.getMessage());
} catch(NoSuchElementException e) {}
}
Пример использования:
Enter IP addresses: 1.2.3.4 a:b:c:d:e:f:a:b
1.2.3.4 is equivalent to 00000001000000100000001100000100
a:b:c:d:e:f:a:b is equivalent to 00000000000010100000000000001011000000000000110000000000000011010000000000001110000000000000111100000000000010100000000000001011