- 论坛徽章:
- 0
|
也试写了一个。。。。。
- mping ()
- {
- [ $# -lt 1 ] && return -1
- var=$1
- status=0
- if [ -e "$var" ]; then
- for ip in `cat $var`
- do
- isip $ip
- if [ $? -eq 0 ]; then
- sudo ping -c 1 -l 1 -w 1 $ip > /dev/null 2>&1
- res=$?
- [ $res -eq 0 ] && echo -e "${ip}\t\t\t[ OK ]" || echo -e "${ip}\t\t\t[ No ]"
- status=`expr $res + $status`
- fi
- done
- return $status
- #status 用来保存几个IP不通
- else
- isip $var
- if [ $? -eq 0 ]; then
- sudo ping -c 1 -l 1 -w 1 $var > /dev/null 2>&1
- res=$?
- [ $res -eq 0 ] && echo -e "${var}\t\t\t[ OK ]" || echo -e "${var}\t\t\t[ No ]"
- return $res
- else
- return 1
- fi
- fi
- }
复制代码
使用
mping mping_ip # 从mping_ip文件中读ip来ping
mping 1.2.3.4 # 直接ping一个地址
当中的isip函数 自己写以下就可以运行了 这里也给个现成的
- isip()
- {
- if [ $# -lt 1 ]; then
- # echo "Need more arguments:$# Now exit"
- return 1
- fi
- echo $1 | grep -oq "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$"
- [ $? -eq 0 ] && echo $1 | awk -F. '{
- if( $1>=0 && $1<=255 &&
- $2>=0 && $2<=255 &&
- $3>=0 && $3<=255 &&
- $4>=0 && $4<=255)
- exit 0;
- else
- exit 1;
- }'
- return $?
- }
复制代码
[ 本帖最后由 juey 于 2006-3-24 00:50 编辑 ] |
|