上将
- 注册时间
- 2013-10-3
- 金币
- 21127 个
- 威望
- 16056 个
- 荣誉
- 0 个
累计签到:1989 天 连续签到:0 天 [LV.2920]超级粉丝
|
本帖最后由 chensksk 于 2016-9-9 11:29 编辑
- #!/bin/sh
- j='0'
- for i in `seq 50`;
- #做50次拨号循环,50次如果都没拨上也停止
- do
- IPP=$(ifconfig pppoe-wan 2> /dev/null |grep -ioE 'addr:([0-9.])+'|sed -n '1p'|awk -F '[:.]' '{print $2"."$3}')
- #获取wan口ip前二位
- IP=${IPP%%.*}
- #保留wan口ip第一位
- if [ "$IPP" = "0.0" ]; then
- #如果没有获取到IP,延时2秒
- echo "please wait 2 second"
- sleep 2
- elif [ "$IPP" = "" ]; then
- #意外情况,等待2秒
- echo "error,please wait 2 second"
- sleep 2
- j=`expr $j + 1`;
- echo "error times :"
- echo $j
- if [ "$j" -ge "5" ]&&[ "$IPP" = "" ]; then
- ifdown wan | ifup wan
- sleep 2
- fi
- #判断ip前两位,为目标IP时跳出循环,多个IP添加 或 条件“ ||[ "$IPP" = "XX.XX" ] ”
- elif [ "$IPP" = "10.10" ]||[ "$IPP" = "172.10" ]; then
- #保留IP,跳出循环
- echo "Public IP:"
- echo $IPP
- break
- else
- #非目标IP,重拨
- echo "Intranet IP:"
- echo $IPP
- ifdown wan | ifup wan
- sleep 2
- fi
- done
复制代码 |
|