java如何获取子网掩码?

Python019

java如何获取子网掩码?,第1张

要用到JDK6中的InterfaceAddress#getNetworkPrefixLength方法。

InetAddress localHost = Inet4Address.getLocalHost()

NetworkInterface networkInterface = NetworkInterface.getByInetAddress(localHost)

for (InterfaceAddress address : networkInterface.getInterfaceAddresses()) {

System.out.println(address.getNetworkPrefixLength())

}

典型的IPv4値:

8 (255.0.0.0)、16 (255.255.0.0)、 24 (255.255.255.0)

典型的IPv6 値:

128 (::1/128)

10 (fe80::203:baff:fe27:1243/10)

把ip和子网掩码转换成二进制 做“按位与”运算 得出的就是网络id号a 另一个ip也是一样计算方法 得出网络id号b

比较a=b 就说明在一个子网 反之 不在

ip转换成二进制的时候 注意按段转