gpt4 book ai didi

java - Virtualbox与获取ip冲突

转载 作者:行者123 更新时间:2023-11-30 07:10:17 26 4
gpt4 key购买 nike

安装 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 的情况下进行通信,最好的方法是通过发现服务或使用广播 UDP 数据包。

您将需要一些东西:

  1. 服务器在特定端口上监听广播数据包,或一般情况。
  2. 一个客户端(在本例中是您的 Android 应用程序),用于监听特定的连接端口(TCP/UDP 取决于您的应用程序需求)。
  3. 客户端还需要能够在网络上发送广播数据包来标识自己。

基本上步骤如下:

  1. 服务器绑定(bind) UDP 广播接收所需的端口。
  2. 客户端绑定(bind)端口以接收来自服务器的响应(例如端口 16000)
  3. 然后,客户端在网络上发送广播数据包,并将该数据包发送给所有客户端。
  4. 服务器接收数据包并通过数据包信息获取客户端的 IP 地址。
  5. 然后,服务器通过 UDP 或 TCP 的监听端口(在本例中为 16000)响应客户端。
  6. 建立与客户端的连接后,客户端通过连接信息知道服务器的 IP,与服务器建立 Activity 连接,并且可以保存该地址以供以后使用。

技术细节可以在 stackoverflow 上找到,但根据服务器/客户端的编程语言和所涉及的操作系统的不同而有所不同。

这里是来自 Oracle Documentation for Java 的教程: https://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html

一个用于 C#: https://msdn.microsoft.com/en-us/library/tst0kwb1(v=vs.110).aspx

关于java - Virtualbox与获取ip冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39337130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com