У меня возникли проблемы с возвратом правильного IP-адреса после установки виртуального бокса oracle. Он печатает мне следующее:Virtualbox, конфликтующий с получением ip
VirtualBox Host-Only Ethernet Adapter 192.168.56.1
VirtualBox Host-Only Ethernet Adapter fe30:0:0:0:1323:fahd:bt75:8422%eth1
Microsoft Teredo Tunneling Adapter 2041:0:91q8:6at8:30he:3r2c:3a53:ff4c
Microsoft Teredo Tunneling Adapter fj80:0:0:0:32bn:1e2z:3f37:ff5c%net4
Realtek PCIe GBE Family Controller 192.168.0.163
Realtek PCIe GBE Family Controller fe30:0:0:0:3a4c:bf90:232a:a324%eth6
Я только хочу, чтобы вернуть 192.168.0.163
Я использовал этот код, чтобы получить IP-адрес:
String ip;
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface iface = interfaces.nextElement();
// filters out 127.0.0.1 and inactive interfaces
if (iface.isLoopback() || !iface.isUp())
continue;
Enumeration<InetAddress> addresses = iface.getInetAddresses();
while(addresses.hasMoreElements()) {
InetAddress addr = addresses.nextElement();
ip = addr.getHostAddress();
System.out.println(iface.getDisplayName() + " " + ip);
}
}
} catch (SocketException es) {
throw new RuntimeException(es);
}
Как получить только разыскиваемый IP?
* Почему * вы собираете все IP-адреса, адреса вашего компьютера? – Andreas
@Andreas Мне нужно установить соединение с устройством, которому требуется вызов с ПК, чтобы получить IP. И да, мне нужно это в приложении Java. –
Зачем вам нужен * собственный * адрес для подключения к устройству? Вам не нужен адрес * устройства *? Если у вас есть это, позвольте системе использовать таблицы маршрутизации для соединения. Тогда я верю, что вы всегда можете узнать, что такое адрес, но не зная, какой * вид * соединения вы устанавливаете, я не могу быть уверен. – Andreas