shell 检测ip的合法性与检测网络掩码的合法性
来源:互联网 发布:php pack("h*") 编辑:程序博客网 时间:2024/06/06 14:22
有时我们需要检测IP输入的正确性与网络掩码的正确性,用shell脚本写的:
#验证ip地址的正确性check_ip_format(){ echo $1 | grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null if [ $? = 1 ]; thenreturn 1else a=`echo $1 | awk -F. '{print $1}'`b=`echo $1 | awk -F. '{print $2}'`c=`echo $1 | awk -F. '{print $3}'`d=`echo $1 | awk -F. '{print $4}'`if [ $a -ge 255 -o $a -le 0 -o $b -gt 255 -o $b -lt 0 -o $c -gt 255 -o $c -lt 0 -o $d -gt 255 -o $d -le 0 ]; thenreturn 2;fi#验证是否组播地址if [ $a -ge 224 -a $a -le 239 ]; thenreturn 3fi#验证回环if [ $a -eq 127 ]; thenreturn 4fifireturn 0}#把数字转换为二进制数字D2B(){num="$1"d2b=`echo "obase=2;$num" | bc`echo $d2b}#验证掩码的正确性check_mask_format(){echo $1 | grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null if [ $? = 1 ]; thenreturn 1fia=`echo $1 | awk -F. '{print $1}'`b=`echo $1 | awk -F. '{print $2}'`c=`echo $1 | awk -F. '{print $3}'`d=`echo $1 | awk -F. '{print $4}'`a=`D2B $a`b=`D2B $b`c=`D2B $c`d=`D2B $d`for i in $a $b $c $d;do[[ $i != 0 && ${#i} != 8 ]] && return 2donemask=$a$b$c$d[[ "$mask" =~ ^1[1]*[0]*$ ]] || return 3return 0}
- shell 检测ip的合法性与检测网络掩码的合法性
- IP合法性检测
- 对email合法性的检测
- asp检测邮箱的合法性
- 时间合法性检测的方法
- 检测密码格式的合法性
- 出栈的合法性检测
- shell实例浅谈之检测用户输入串的合法性
- IP地址合法性检测 VBScript
- 用asp检测email的合法性函数
- 检测表单输入EMAIL的合法性
- 17_7_20:元素入栈出栈的合法性检测
- ip的合法性判断
- shell实例浅谈之七检测用户输入串的合法性
- shell实例浅谈之十检测整数、浮点数和日期数的合法性
- shell实例浅谈之检测整数、浮点数和日期数的合法性
- Java判断密码字符串String的合法性:检测密码的合法性
- 字符串合法性检测1
- ASP.NET MVC 入门8 Action Filter 与 内置的Filter实现(介绍)
- Generate rand10() from rand7()
- 执行力的问题--系统的无奈
- python学习总结——列表
- 数据结构 用栈和队列判断回文数
- shell 检测ip的合法性与检测网络掩码的合法性
- 高频机和低频机捕鱼机的优缺点
- ASP.NET MVC 入门10 使用AJAX
- C++中string的常用函数
- 序列化和反序列化
- 2013 多校第七场 hdu 4669 Mutiples on a circle(DP,环)
- mini2440的按键驱动
- Linq基本查询
- codeforces---#196 337A