如何列出网络中的所有计算机?
How to list all computers in network?
对于我制作的 java 小游戏,我希望能够在同一(家庭)网络中的两台计算机上玩它。我想我会使用 RMI,现在正在尝试使用 ipaddress 192.168.2.3 上的计算机。
我知道我可以在我的另一台计算机 192.168.2.6 上的这个 IP 地址上搜索注册表,但我想显示我的计算机所连接的网络中所有 IP 地址的列表。最好只有当他们真正举办比赛时。
现在我在 Whosebug 上尝试了一些问题:
- How to enumerate IP addresses of all enabled NIC cards from Java?
- How can I find all locally bound IP addresses in Java?
- How to get a list of IP connected in same network (subnet) using Java
- Why does InetAddress.isReachable return false, when I can ping the IP address?
,但我不认为我需要我所有的计算机网络接口并且 InetAddress.isReachable() 似乎总是导致错误(即使我可以通过 cmd ping 并且我关闭了防火墙)并调用一个命令行
"ping -n 1 192.168.2.i" 对于所有 i,其中 0<=i<=255,
总是正常退出,所以结果总是为真。
获取与运行 JVM 的计算机位于同一网络中的计算机的 IP 地址列表的最佳方法是什么?
通过链接的答案,您应该能够将可用接口筛选为几个可能的选项(即接口已启动、无环回、具有 IPv4 地址等)。
要发现游戏主机,您可以执行以下操作。
- 让游戏主机在特定端口上侦听 UDP 广播。
- 让客户端从上面向每个剩余接口的广播地址发送 UDP 广播。广播地址可以由
getBroadcast()
in class InterfaceAddress
. 决定
- 主机回复,让客户端知道它正在等待。使用 UDP 时,主机 IP 在收到的
DatagramPacket
中。使用 TCP 时,可以从 Socket
. 确定主机 IP
- 然后客户端就可以使用主机地址建立直接连接and/or设置RMI
编辑:我发现 this blog post,其中包含的代码或多或少与我描述的相同。
对于我制作的 java 小游戏,我希望能够在同一(家庭)网络中的两台计算机上玩它。我想我会使用 RMI,现在正在尝试使用 ipaddress 192.168.2.3 上的计算机。 我知道我可以在我的另一台计算机 192.168.2.6 上的这个 IP 地址上搜索注册表,但我想显示我的计算机所连接的网络中所有 IP 地址的列表。最好只有当他们真正举办比赛时。
现在我在 Whosebug 上尝试了一些问题:
- How to enumerate IP addresses of all enabled NIC cards from Java?
- How can I find all locally bound IP addresses in Java?
- How to get a list of IP connected in same network (subnet) using Java
- Why does InetAddress.isReachable return false, when I can ping the IP address?
,但我不认为我需要我所有的计算机网络接口并且 InetAddress.isReachable() 似乎总是导致错误(即使我可以通过 cmd ping 并且我关闭了防火墙)并调用一个命令行
"ping -n 1 192.168.2.i" 对于所有 i,其中 0<=i<=255,
总是正常退出,所以结果总是为真。
获取与运行 JVM 的计算机位于同一网络中的计算机的 IP 地址列表的最佳方法是什么?
通过链接的答案,您应该能够将可用接口筛选为几个可能的选项(即接口已启动、无环回、具有 IPv4 地址等)。
要发现游戏主机,您可以执行以下操作。
- 让游戏主机在特定端口上侦听 UDP 广播。
- 让客户端从上面向每个剩余接口的广播地址发送 UDP 广播。广播地址可以由
getBroadcast()
in classInterfaceAddress
. 决定
- 主机回复,让客户端知道它正在等待。使用 UDP 时,主机 IP 在收到的
DatagramPacket
中。使用 TCP 时,可以从Socket
. 确定主机 IP
- 然后客户端就可以使用主机地址建立直接连接and/or设置RMI
编辑:我发现 this blog post,其中包含的代码或多或少与我描述的相同。