校园网络维护脚本
2015-07-28 09:36
501 查看
该脚本一直监测网络连接情况,若出现断网情况,自动连接网络。
话不多说,直接贴代码:
NetLogin.py
话不多说,直接贴代码:
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()
相关文章推荐
- 解决企业In-House安装APP需HTTPS支持的问题
- 通过持续ping来检测网络质量
- 通过持续ping来检测网络质量
- Volley 异步网络请求分析
- android网络操作I: OkHttp, Volley以及Gson
- HttpClient工具类
- 黑马程序员 4000 ——Java基础---网络编程
- 多益网络笔试题
- TCP恋爱史:三次握手和四次分手
- 客户端开发--3控制器开发准备(2)【网络通信模块】
- C++使用libcurl做HttpClient
- 网络通讯中的字节序转换及大端、小端
- C++ curl跨平台HttpClient
- NginX issues HTTP 499 error after 60 seconds despite config. (PHP and AWS)
- Java开发工程师案例-网络日志分析系统
- php利用socket函数模拟发送http请求
- python网络编程
- 计算机网络基本概念汇总
- 如何生成每秒百万级别的 HTTP 请求?
- 【Java TCP/IP Socket】Socket编程知识点总结