我正在研究基于LAN的软件,我需要使用java来检测网络中系统所在的范围。该功能必须类似于Windows实用程序软件netscan中的“检测本地IP范围”。在这方面的任何帮助将受到高度赞赏。
答案 0 :(得分:1)
答案 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是我将使用的方法。