|
- #前面和你说的帖子一样,找到拨号的一行(解释一下就是获取你的拨号命令行)
- #除了帖子里的方法还可以在luci中的状态→系统进程中找到
- #程序开始
- while [true]
- do
- ip = "0.0.0.0"
- count=0
- #获取进程列表→搜索pppd→统计行数
- count=$(ps |grep pppd|grep -v grep |wc -l)
- #count=0则需要拨号,否则不需要拨号
- if [$count -gt 0]
- then
- {
- echo "[I]Had already dialed!!"
- sleep 1000
- #sleep一下缓解CPU压力
- }
- else
- {
- echo "[E]Not dialed!"
- sleep 10
- #把下面一行换成刚才找到的哪一行
- pppd file /tmp/ppp/options.pppoe
- ping = 0
- #ping百度,直到可以ping通为止,也可以ping其他网址(必须保证畅通)
- while[$ping -eq 0]
- do
- ping=$(ping www.baidu.com -c 2|grep 64 bytes from |wc -l)
- done
- }
- fi
- #获取ip第一段
- #找到ip所在行
- temp = $(ifconfig|grep -A1 "ppp0"|grep "inet addr")
- #截去" Bcast"右边
- ip = ${temp%" Bcast"*}
- #删除“inet addr:”
- ip = ${ip/"inet addr:"/""}
- if [$ip != ""]
- then
- {
- echo "[+]Current IP is $ip"
- iphead = $(echo $ip|cut -d "." -f 1)
- echo "[+]Its head is $iphead"
- if[$iphead -eq 220]
- then
- {
- echo "[+]Congratulation!Dialed OK!"
- #程序退出
- exit 0
- }
- else
- {
- sleep 10
- echo "[I]No luck,clean up and retry!"
- sleep 10
- echo "[+]Killing pppd process"
- kill -9 `ps |grep pppd|awk '{print $1}'`
- sleep 10
- echo "[+]pppd has been killed!"
- echo "[+]Clearing ip"
- ip = ""
- }
- fi
- }
- fi
- done
复制代码
搞定,这是第一版,明天晚上我再改一改~~,你先测试一下,看看能不能用 |
|