#思路:

##1、 當校園網斷開,只需要重新撥號即可

##2、 校園網使用兩臺電腦同時登入時不會立即下線,其中有一段時間間隔

#步驟:

##1、 通過抓包對撥號產生的資料包進行分析,使得可以通過程式碼來實現自動撥號

指令碼一:

#!/bin/bash
# check Internet status
sleep 20
ping -c 1 114.114.114.114 > /dev/null 2>&1
if [ $? -eq 0 ];then
logger Connecting.
else
logger Network disconnection.
source ./login.sh
# 等價於 ../login.sh 使用source呼叫指令碼不會退出當前指令碼
logger Reconnecting.

指令碼二:

#!/bin/bash
logger "[Dr.com page verify] Start timing detection."
curl http://192.168.167.46 >drcom.html
check_status=`grep "Dr.COMWebLoginID_0.htm" drcom.html`
if [[ $check_status != "" ]]
then
# offline status
logger "[Dr.com page verify] offline status."
# yourself curl
curl -X POST "http://192.168.167.46/a70.htm" -H "Origin: http://192.168.167.46" -H "Connection: keep-a
live" -H "Content-Type: application/x-www-form-urlencoded" -H "Upgrade-Insecure-Requests: 1" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.170 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3" -H "DNT: 1" -H "http://192.168.167.46/a70.htm?wlanacip=null&wlanacname=null&vlanid=0&ssid=null&areaID=null&mac=00-00-00-00-00-00" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.9" -b "program=ip; vlan=0; ip=10.73.42.253; md5_login2=1809111038%7C284974" --data "DDDDD=1809111038&upass=284974&R1=0&R2=&R6=0&para=00&0MKKey=123456&buttonClicked=&redirect_url=&err_flag=&username=&password=&user=&cmd=&Login=&R7=0" --tlsv1 -o Sxinfo.txt logger "[Dr.com page verify] online status."
else
# always online
logger "[Dr.com page verify] already onine."
fi

##2、 如果需要實現多臺電腦同時線上,就需要在校園網還沒檢測並下線之前重新撥號

對於上面的指令碼進行任務計劃,將時間間隔設定在11秒(防止撥號頻繁被禁)

*/1 * * * * sleep 11 && /etc/storage/login.sh
*/1 * * * * sleep 23 && /etc/storage/login.sh
*/1 * * * * sleep 35 && /etc/storage/login.sh
*/1 * * * * sleep 47 && /etc/storage/login.sh
*/1 * * * * sleep 58 && /etc/storage/login.sh

#優化:

##1、 不知道為啥,校園網偶爾需要重新撥號,所以我寫了一個指令碼來以防萬一

指令碼三:

#!bin/bash
a=`ping -c 3 www.baidu.com | grep loss | awk 'BEGIN{FS=","} {print $3}'| awk 'BEGIN{FS="%"} {print $1}'`
b=0
if [ $a != $b ]
then
sh /etc/storage/login.sh
fi

主要作用就是ping一下百度,要是沒有ping通就重新執行一下指令碼。

這個指令碼我給他設定的計劃任務時間間隔是一分鐘。