东华大学网络认证登录脚本Python
学校网络去年一次升级后,无论是有线连接还是无线连接都加了认证。每次登录都要输入账号和密码,特烦!尤其是自己搭建的服务器如果不拨号根本连接不上外网,那么外网也没法访问。于是花费一下午写了一个Python小脚本,实现了不用输入密码和账号的登录。也可以放在服务器让服务器一直连接外网。
关于拨号,据说是拨一次就可以一天都在线了,为了防止意外(PS:意外常常发生)掉线。所以脚本会根据时间然后调整提交数据的频率。频率现在的计算方法是距离午夜秒数的三分之一。比如到刚开始第一次刷新时间是24H/3=8小时,第一次刷新间隔是8小时,第二次刷新间隔是(24-8)/3=5.33小时。这样长时间的间隔,会降低认证服务器的认证负担。后期的刷新刷新频率比较高,可能一秒一次。尤其是23:59:57秒时候。这时候比较关键,因为这时候一天过去了,刷新频率要提高。保证过了24时候,可以立即上网。说道这儿,算法的bug出现了,因为一天的认证时间是从0:0:0分开始的,按照刚刚的算法,这时候的刷新频率是8小时,那么我们有8小时是没有办法上网的,为了解决0时,刷新频率为8小时,我们将24时候加27秒,这样的话 我们就可在27秒后,提供一大波的密集的数据提交,保证认证不出问题。好了,思路就是这样,开始做!
# -*- coding: cp936 -*- import time import datetime import urllib import urllib2 def reflash(): url='http://218.193.144.131//brasportal/default.aspx'#URL data={'txtUsername':'账号',#POST数据 'password':'密码', 'Button1':'登 录', '__VIEWSTATE':'/wEPDwUJMjI4MTA2OTc2DxYCHgh1c2VybmFtZWQWAgIDD2QWCAIBDw8WAh4IUmVhZE9ubHloZGQCAw8PFgIeBFRleHQFDOW3sue7j+eZu+WHumRkAgUPDxYCHgdWaXNpYmxlZ2RkAgcPDxYCHwNoZGRkCJsikCEOro8XM0lzFlOocJWbPIY=', '__EVENTVALIDATION':'/wEWAwKr2cE0AqXVsrgJAoznisYGdNbIfpXau5D4N5zH/LNb6xPbv7E=' } data=urllib.urlencode(data); headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36'} opener=urllib2.Request(url,data,headers) data1=urllib2.urlopen(opener).read() print data1 return time0=24*60*60+27;#为了防止午夜新的认证期间掉线,将刷新时间偏移一下,可以在0点0分27秒内有一次密集的数据提交 while True: H=time.strftime("%H,%M,%S",time.localtime(time.time())) h=H.split(',') time1=int(h[0])*3600+int(h[1])*60+int(h[2]) time_diff=time0-time1 print 'time_diff:',time_diff reflash() time.sleep(time_diff/3)
Game Over
版权所有,转载请保留本站的网址,谢谢!