Java本地IP范围检测

时间:2012-08-20 10:21:31

标签: java ip range lan

我正在研究基于LAN的软件,我需要使用java来检测网络中系统所在的范围。该功能必须类似于Windows实用程序软件netscan中的“检测本地IP范围”。在这方面的任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用“ping”。

这篇文章有一些启动ping的代码。

How to do a true Java ping from Windows?

答案 1 :(得分:1)

如果您想要实际的本地子网IP范围,而不是本地子网中的活动IP地址列表,可以使用以下代码获取子网掩码大小:

InetAddress localHost = Inet4Address.getLocalHost();
NetworkInterface ni = NetworkInterface.getByInetAddress(localHost);
InterfaceAddress ia = ni.getInterfaceAddresses().get(0);
short mask = ia.getNetworkPrefixLength();

这将为您提供一个short原语,其值为1-32,可能为24.然后您可以使用

byte[] b = ia.getAddress().getAddress();

这将为您提供byte[],您将屏蔽子网mask,以便为您提供某种可用格式的本地地址范围。


或者,如果您想要本地子网上的活动主机列表,则使用JPCap的arp-scan是我将使用的方法。