怎样用Java验证ip和子网掩码是不是正确,详细问题如下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用Java验证ip和子网掩码是不是正确,详细问题如下相关的知识,希望对你有一定的参考价值。
比如子网掩码大于32我们知道肯定是错的,还有192.168.0.10/29也是错的,怎么能用Java判断呢
把ip和子网掩码转换成二进制 做“按位与”运算 得出的就是网络id号a 另一个ip也是一样计算方法 得出网络id号b比较a=b 就说明在一个子网 反之 不在
ip转换成二进制的时候 注意按段转 参考技术A 192.168.0.10/29没错,29位的追问
好像是错的吧,192.168.0.10的子网掩码最小应该是31位吧
追答31位才是错的,31位的子网就没有可用的IP。
掩码不是到哪位有1就是正确,网络位可能更靠后,也可能在前面。
找机会你再好好学学这块吧,你注意192.168.0.10的10吗
追答10怎么了
192.168.0.10/29只是该网络的一个可用IP
该网络的网络地址:192.168.0.8
该网络的广播地址:192.168.0.15
该网络的可用IP范围:192.168.0.9-192.168.0.14
你认为第31位二进制是1那么子网掩码就必须要到31位,可惜你连基础都没搞明白,最小的网络掩码也必须30位,31位掩码的网络根本没有可用的IP,建议你先去看看书查查资料搞明白基础。
亲,你还不如直接说使用算法呢
追答正则表达式是检测此类东西最方便的方式。使用算法不是更麻烦了?
String checkIp = "\\\\d3[.][0-9]3[.][0-9]3[.][0-9]3$";System.out.println("192.168.0.10/29".matches(checkIp));
试试看。追问
好像不对呢
追答String checkIp = "\\d1,3[.][0-9]1,3[.][0-9]1,3[.][0-9]1,3$";
Linux中,怎样永久修改IP和子网掩码
linux中永久修改ip和子网掩码,可以用命令也可以直接到文件里修改。这里推荐直接到文件中修改。1、进入网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ethN (ifcfg-ethN是你要修改的网卡,可以用ifconfig查看你要修改的网卡)
2、进入文件进行编辑,更改其中的ip 和子网掩码。
3、重启网路服务,并用ifconfig 查看网卡信息。
service network restart
ifconfig 参考技术A 你要有ROOT权限,修改/etc/sysconfig/network-scripts/ifcfg-eth0 (eth0是指这一张网卡,如果你还有第二张网卡,需要修改ifcfg-eth1了)
加入
IPADDR=192.168.1.101 (这儿就是你的IP地址)
NETMASK=255.255.255.0 (这儿是掩码)这样就永久修改了。 参考技术B #vi /etc/sysconfig/network-scripts/ifcfg-eth0格式如下IPADDR=X.X.X.X #你需要设置的ipNETMASK=X.X.X.X #你需要设置的掩码BOOTPROTO=static #手动配置。NOBOOT=yes #开机自动启动。如果你不是最小化安装的话直接netconfig在里面设置。 参考技术C vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=192.168.1.1 NETMASK=255.255.255.0 保存退出注意前面是大写。然后,service network restart即可永久生效。
以上是关于怎样用Java验证ip和子网掩码是不是正确,详细问题如下的主要内容,如果未能解决你的问题,请参考以下文章