javascript IPv4地址,子网掩码正则表达式

javascript IPv4地址,子网掩码正则表达式

1、IPv4地址

var reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;

测试结果
2、可用合法的IPv4地址
以下IP地址应该过滤掉:
0.0.0.0/0,127.0.0.0/8(Loopback,回送测试loopback test所用),D类(224-239,组播地址)和E类地址(240~254,保留为研究测试使用)

//需要先用上面的IPV4检查IP是否有效,然后用该正则排除组播地址,loopback等地址
//第一位数介于1到223之间,且排除127和0开头
var reg = /^(?!(0|127|22[4-9]|2[4-5]\d)\.)/;

测试结果
3、子网掩码表达式

//0.0.0.0和255.255.255.255过滤
var reg=/^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/;
//0.0.0.0和255.255.255.255未过滤
var reg=/^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(255|254|252|248|240|224|192|128|0)$/;

测试结果
子网掩码、IP地址数、掩码长度对照表

子网掩码、IP地址数、掩码长度
3、主机号全0或者全1的计算方法
如果主机号全0,IP地址代表仅网络号指向的那个网段,该IP代表一个网段;如果主机号全1,IP地址代表网络号指向的全部主机,IP地址代表广播地址
计算方法:
子网掩码x按位与主机号h获得网络号A
子网掩码按位取反^x获得主机段全1的号码B
A按位 或 B就是A所在网络的广播地址C
C = x & h | ^x
192.168.1.10/255.255.0.0
IP地址 11000000 10101000 00000001 00001010 192.168.1.10
掩码 11111111 11111111 00000000 00000000 255.255.0.0
按位与 11000000 10101000 00000000 00000000 192.168.0.0(网络号)

掩码取反 00000000 00000000 11111111 11111111
IP地址 11000000 10101000 00000001 00001010 192.168.1.10
按位与 00000000 00000000 00000001 00001010 0.0.1.10(主机号)

掩码取反 00000000 00000000 11111111 11111111
网络号 11000000 10101000 00000000 00000000 192.168.0.0
按位或 11000000 10101000 11111111 11111111 192.168.255.255(广播地址)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yoyo勰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值