您的位置:首页 > 理论基础 > 计算机网络

校园网络维护脚本

2015-07-28 09:36 501 查看
该脚本一直监测网络连接情况,若出现断网情况,自动连接网络。

话不多说,直接贴代码:

NetLogin.py

#coding: utf-8

import requests
import time
import datetime
import sys

reload(sys)
sys.setdefaultencoding("utf-8")

class NetLogin:

def __init__(self):
self.login_url = 'http://p.nju.edu.cn/portal_io/login'
self.info_url = 'http://p.nju.edu.cn/portal_io/getinfo' #登录状态下获取,方式:get
self.logout_url = 'http://p.nju.edu.cn/portal_io/logout'
self.headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Referer': 'http://p.nju.edu.cn/',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}

self.form_data = {
'username': 'MGxxxxxxx',
'password': 'xxxxxx'
}
self.timeout = 5

self.test_url = 'http://www.baidu.com/'
self.testStr = "030173"

def net_test(self):
try:
s = requests.session()
r = s.get(self.test_url, headers=self.headers, timeout=self.timeout)
pos = r.content.find(self.testStr)
if pos >= 1:
#print 'Internet Ok'
return 'Internet Ok'
else:
#print 'Internet Wrong'
return 'Internet Wrong'
except Exception, e:
print e

def create_session(self):
s = requests.session()
return s

def login(self):
s = self.create_session()
r = s.post(self.login_url, self.form_data, headers=self.headers)
if r.json()['reply_code'] == 1:
print r.json()['reply_msg']
return r.json()['reply_msg']
else:
#print u"login failed"
return u"login failed"

#获取登录信息,需要完成登录后执行该函数
def getInfo(self):
s = self.create_session()
r = s.get(self.info_url, headers=self.headers)

#网络注销
def logout(self):
s = self.create_session()
r = s.post(self.logout_url, headers=self.headers)

if __name__ == "__main__":
net = NetLogin()
signal = net.net_test()
#log = open('netlog.txt', 'a')
while True:
if signal == 'Internet Ok':
#s = str(datetime.datetime.now())
print datetime.datetime.now()
print signal
'''
log.write(s)
log.write('\n')
log.write(signal)
log.write('\n')
'''

else:
#s = str(datetime.datetime.now()) + ':'
print signal
str = net.login()
print datetime.datetime.now()
print str
'''
log.write(s)
log.write('\n')
log.write(str)
log.write('\n')
'''
time.sleep(1)
signal = net.net_test()
'''
num += 1
if num == 5:
flag = False
'''

#log.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: