java如何获取子网掩码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何获取子网掩码?相关的知识,希望对你有一定的参考价值。

如题。如何获取子网掩码?别说看文档去,那没有。

参考技术A 要用到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)

参考资料:http://jtute.com/java6/0405.html

本回答被提问者采纳

如何判断子网掩码是不是合法

192.168.0.1/255.255.255.0
192.168.0.1/255.255.254.0
192.168.0.1/255.192.0.0
192.168.0.1/255.254.254.0
上述给出的ip+子网掩码那个是不合法的?
据我的了解(了解不深,讲错一定指出)子网掩码是有前面连续的1和后面连续的0组成,但有人说前三个都是合法的,我不了解的是192.168.0.1不是c类网吗,c类网的子网掩码的位数不是最多6位吗?也就是说c类网的子网掩码只能从255.255.255.192 到255.255.255.252,怎么255.192.0.0那个也对吗?为什么啊?
还有如果有人知道如何判断子网掩码是否合法的具体方法和事例,请大家麻烦指教我下,谢谢!

参考技术A 192.168.0.1/255.254.254.0 这是不合法的,原因你也说了,网络位必须全为1,这个就不符合

你不理解的原因你不了解变长子网掩码(VLSM)和无类域间路由(CIDR)这些概念,去搜索一下你就清楚了。这打破了传统的ABC类IP的概念

参考资料:http://baike.baidu.com/view/878.htm

本回答被提问者采纳

以上是关于java如何获取子网掩码?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python获取ip和子网掩码地址[关闭]

在 Java 代码中获取错误以查找有关子网和掩码的信息 [重复]

python设置本机IP地址子网掩码DNS,获取本机IP地址子网掩码DNSMAC

怎样用Java验证ip和子网掩码是不是正确,详细问题如下

以编程方式获取网关和子网掩码详细信息

如何判断子网掩码是不是合法