python实现校园网一键自动连接

Posted batt1ebear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现校园网一键自动连接相关的知识,希望对你有一定的参考价值。

自己查了一下校园网点击链接后调出浏览器认证页面的机制叫 potral  具体介绍:https://blog.csdn.net/xianweijian/article/details/49450703

反正太复杂我是看不懂,那就简单暴力点:1,把跳出的浏览器进程kill掉   2,用爬虫实现自动登陆。

首先用cmd命令选择校园网:

netsh wlan connect name=i-NUIST

  

注意:如果这时候直接用爬虫登陆,还来不及连上网络,所以先暂停一秒再运行,同理 先运行杀死程序时可能edge还未跳出,总之具体顺序是:打开wifi——等待一秒——自动登陆——跳出浏览器——杀死浏览器

打开网络监听器fiddler

技术分享图片

获取请求headers和登陆网站名技术分享图片

再获得请求表单,这里密码是已经加密过的,我一开始以为是全校通用密码123321,结果没反应。。

用requests库post方法登陆。

 

这时potral会跳出浏览器界面让你认证,直接killtask(这里会跳出默认浏览器 我把edge设成默认以为chrome可能有别的页面以免被杀)

TASKKILL /F /IM MicrosoftEdge.exe
#/F指要杀死的程序 #IM 指程序名 

然后就ok了~run it 一键登陆完成

 

 

源码

 1 import requests
 2 import os
 3 import time
 4 
 5 def openwifi():
 6     os.system(netsh wlan connect name=i-NUIST)
 7     time.sleep(1)
 8     
 9 def killtask():
10     os.system(TASKKILL /F /IM MicrosoftEdge.exe )
11 
12 def login():
13     thedata={domain:CMCC,
14            enablemacauth:0,
15            password:xxxx,
16            username:‘batt1ebear
17           }     
18     theheader={
19     Host: a.nuist.edu.cn,
20     User-Agent:Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0,
21     Accept: application/json, text/javascript, */*; q=0.01,
22     Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3,
23     Accept-Encoding: gzip, deflate,
24     Content-Type: application/x-www-form-urlencoded,
25     X-Requested-With:XMLHttpRequest,
26     Referer:http://a.nuist.edu.cn/index.php?url=aHR0cDovL2RldGVjdHBvcnRhbC5maXJlZm94LmNvbS9zdWNjZXNzLnR4dA==,
27     Content-Length: 67,
28 
29     Cookie:_gscu_1147341576=059821653286gq10; sunriseUsername=123441534;30     sunriseDomain=NUIST;sunriseRememberPassword=true; sunrisePassword=123456;31     PHPSESSID=hb0o9bkct2f6ge164oj3vj0me5;think_language=zh-CN,
32     Connection:keep-alive,
33 }
34 
35     url="http://a.nuist.edu.cn/index.php/index/login"
36     p=requests.post(url,data=thedata,headers=theheader)
37     
38  
39 def main():
40     openwifi()
41     login()
42     killtask()
    os.exit(0)
43 44 main()

 


以上是关于python实现校园网一键自动连接的主要内容,如果未能解决你的问题,请参考以下文章

python连接校园网

用python写一个脚本,自动连wifi,自动登录校园网

用python写一个脚本,自动连wifi,自动登录校园网

用python写一个脚本,自动连wifi,自动登录校园网

你还在为智慧校园每周的评教而苦恼吗?今天我来帮你解放双手,用Python实现一键评教,从此生活无忧无虑~

MacBook利用sleepwatcher实现开盖自动联网