- 论坛徽章:
- 39
|
本帖最后由 关阴月飞 于 2013-03-07 23:49 编辑
- #!/bin/bash
- #输入一个IP加掩码得到该网段所有可用IP地址
- #检测脚本参数个数
- if [ $# -ne 2 ];then
- echo "Usage: $0 ipadress netmask"
- exit 1
- fi
- IP=$1
- MASK=$2
- #判断ip是否合法
- if ! ipcalc -bn $IP $MASK>/dev/null;then
- exit 1
- fi
- #判断子网掩码是否合法
- if ! echo $MASK |awk -F. -vOFS=';' '{print "obase=2",$1,$2,$3,$4}'|bc |awk '{printf $0}' |grep -qE '^1[1]*[0]*$' ;then
- echo "bad netmask: $MASK"
- exit 1
- fi
- #获取该网段所有可用IP地址
- n=($(ipcalc -bn $IP $MASK |awk -F'[=.]' '{printf $2*256^3+$3*256^2+$4*256+$5" "}'))
- seq $[${n[1]}+1] $[${n[0]}-1] |awk -vOFS=. '{i=$0;print int(i/256^3),int(i%256^3/256^2),int(i%256^3%256^2/256),i%256^3%256^2%256}'
复制代码 |
|