|
如题
爱快拨号
自动判断wan口是不是公网
如果是,保持不动
如果不是,自动重播,直到是公网为止
能否出这个小功能,可以自主选择打开这个功能或者关闭这个功能
ps(家里移动宽带,有时候拨号能拨到ipv4的公网)
op下添加脚本可以实现
- #!/bin/bash
- #Restart the interface wan until get the global address
- #by Huangxiaosong
- while true
- do
- globalAdd=$(curl icanhazip.com) #读取公网IP,赋值给变量globalAdd
- echo "globalAdd:" $globalAdd
- wanAdd=$(ifstatus wan | awk -F '"' '{if (NR==19) print $4}') #读取端口IP,赋值给变量wanAdd
- if [ -z "$wanAdd" ] #判断 $wanAdd 是否为空,因为读取IP的时候有时候读出来的文本,IP在19行,有时候在20行,因此这里做一个判断,如果19行读不到IP就读20行。
- then
- wanAdd=$(ifstatus wan | awk -F '"' '{if (NR==20) print $4}')
- echo $wanAdd
- fi
- echo "wanAdd:" $wanAdd
- if [ $globalAdd != $wanAdd ] #如果查询到的公网IP不等于WAN口IP,说明路由器获取的IP是联通内网IP。那么就重启WAN口。
- then
- ifdown wan
- echo "ifdown wan"
- sleep 1
- ifup wan
- echo "ifup wan ..."
- sleep 7
- else
- echo "Well done! you get the global address!"
- echo "wait 15 min !"
- sleep 900 #这里等等15分钟后继续循环执行程序。
- fi
- done
复制代码
|
|