使用awk/grep检查IP地址的合法性

正确的IP地址格式:

1.以点号为分隔的域为4或6(IPV6);

2.除点号外全部为数字;

3.第一个和最后一个字节不能为0;

4.所有字节的数值不能超过255;

5.最后一个字节不能为255;(这是子网广播地址)


IPADDR=192.168.1.1 (有效)
IPADDR=192.168.0.254(有效)
IPADDR=10.0.0.0(无效)
IPADDR=0.1.1.1(无效)
IPADDR=192.168.001.001 (无效)
IPADDR=1aa.2bb.3cc.4dd (无效)
IPADDR=aaa.bbb.ccc.ddd (无效)
IPADDR=192.168.1.1.2 (无效)
IPADDR=292.168.1.1(无效)
IPADDR=192.168.1.1111(无效)

IPADDR=192.001.2.3(无效)

echo $a |grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$"|grep -v "\.0[0-9]\{1,2\}"|grep -v "^0[0-9]\{1,2\}" || return 1

echo $a |awk -F. '{if(NF==4 && $1>0 && $1<=255 && $2>=0 && $2<=255 && $3>=0 && $3<=255 && $4>0 && $4<255) exit 0; else exit 1}'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值