以下示例只是提供一些思路和简易的方法。请参考使用。以下代码在bash中验证通过,如果使用其它shell请自行调整。
1:IP格式效性判断
1 #return 1(failure) invalid ip,0(success) valid ip2 is_valid_ip_format()3 {4 if [[ "$1" =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] ;then
5 return 0
6 else
7 return 1
8 fi
9 }
补充说明:
if判断语句中使用shell的正则表达式,请注意,在正则表达式上是不需要加引号的!这是shell的新特性,网上有类似语句但是无法使用就是因为在正则表达式上加了引号。
2:IP冲突检测
1 #return 1(failure) conflict,0(success) not conflict2 is_ip_conflict()3 {4 conflict=`ping -c 2 -t 1 $1 >/dev/null 2>&1 && arp $1`5 if [ -z "$conflict" ];then
6 return 0
7 else
8 return 1
9 fi
10 }
补充说明:
IP冲突检测看起来是一个很复杂的问题,其实在TCP/IP协议中,IP冲突检测是ARP协议的一个额外功能,原理很简单,使用ARP协议向网络中广播自己的IP地址,如果收到响应则存在IP冲突