问题由来:北邮校内网需要认证,之前都是用网页重定向的方式认证,考虑到服务器可能没有x-window界面,无法顺利完成认证过程。所以就有了以下的故事:
解决办法:python编写脚本实现自动上网认证
运行环境:python3
运行须知:账号和密码需要自己提供,然后改下脚本相应配置就ok,有注释
代码:
#########################################
####code by xuxueliang and yanghuahui####
###### huahuiyang(at)gmail.com #####
#########################################
def BuptLogin():
import httplib2
import urllib
import hashlib
###your username and password###
username = '08211578'
pwd = 'huahui********'
###your username and password###
urlstr = "http://10.3.8.150/cgi-bin/do_login"
m = hashlib.md5(pwd.encode("gb2312"))
passwordMd5 = m.hexdigest()[8:24]
data={'username':username,'password':passwordMd5,'drop':0,'type':1,'n':100}
h = httplib2.Http('.cache')
response,content = h.request(urlstr, 'POST', urllib.parse.urlencode(data), headers={'Content-Type': 'application/x-www-form-urlencoded'})
print(content.decode('utf-8'))
BuptLogin()
p.s
第三方开源库httplib2的下载地址以及安装
下载:http://code.google.com/p/httplib2/
安装:python31 setup.py install