python模拟学校网络认证客户端

学校内上网时需要登录账号,每次都会弹出学院的网站,实在觉得麻烦,一个月前使用python写的这个客户端解决了问题,只需要双击运行即可。为了分析网络认证的参数,还使用了wireshark进行分析,其认证的时候密码是使用md5 哈希过的,而且只是截取了部分。所以python模拟客户端时也需要有这个过程。代码比较简单,就是与服务器进行交互的过程,于是共享出来。

import urllib .request
import urllib .parse
import hashlib
 
def Login ( username , password ):
    url = http://192.0.0.6/cgi-bin/do_login “
    dig = hashlib . md5( password .encode ( “ascii” )).hexdigest ()
    dig_16 = dig [ 8: 24 ]
    data = urllib . parse. urlencode ({ ‘username’ :username , ‘password’ :dig_16 ,“drop” : 0, “type” :1 , “n” :100 })
    data = data . encode( “utf-8″ )
    re = urllib . request .Request (url )
    re .add_header ( “Content-Type” ,“application/x-www-form-urlencoded” )
    req  = urllib . request .urlopen (re , data)
    if ( req. read ().decode ( ‘utf-8′ )!= “password_error” ):
        print ( “ok! you are login in “ )
 
if __name__ == “__main__” :  
    Login (xuehao , mima) # your username and password