使用python发送校园网络认证请求

本文阐述了利用python向校园网络发送认证请求的方法。操作系统:macOS-10.12.6

前言

学校的网络从去年起,必须经过网络身份认证,才能接入互联网。每次认证后仅在当天有效。第二天凌晨3点后就必须重新认证。
因此,这对需要挂机下文件的用户/挂服务器的用户/每次开机想直接上网的用户而言造成了很大的麻烦。因此,我使用python写了一个认证小程序。

原理

学校的认证采用网页认证的方法,也就是说登录指定的url,输入账号和密码,即可完成认证。因此,通过brupsuite的抓包,发现该http数据包采用post请求,将数据体的指定内容发送到指定的url上。因此,利用python的http库,编写了程序。

认证程序

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/python
import requests
cs_url = "http://10.69.253.12/ac_portal/login.php"
my_data={
"opr" : "pwdLogin",
"userName" : "-----", #输入账号
"pwd" : "-----", #输入密码
"rememberPwd" : "0"
}
r = requests.post(cs_url,data=my_data)

我将python脚本放在/usr/local/路径下,文件名为zucclogin.py

实现开机自动登陆(mac)

mac要做到开机自启动,需要通过plist脚本来实现。plist脚本可以设置执行的动作,时间间隔等其他一些信息。
plist脚本存放路径为/Library/LaunchDaemons/Library/LaunchAgents,其区别是后一个路径的脚本当用户登陆系统后才会被执行,前一个只要系统启动了,哪怕用户不登陆系统也会被执行。

plist脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.zucc.netlogin.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/zucclogin.py</string>
</array>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<true/>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>3</integer>
</dict>
</dict>
</plist>

我将脚本放在/Library/LaunchAgents路径下,文件名为com.zucc.netlogin.plist

实现开机自动登陆 (windows)

参考文献

  1. 在cmd中输入gpedit.msc打开组策略编辑器
  2. 选择用户配置->windows设置->脚本->启动,在启动 属性对话框中选择添加,找到python文件。

本文标题:使用python发送校园网络认证请求

文章作者:Jerry

发布时间:2018年03月19日 - 16:24:03

最后更新:2019年08月31日 - 23:52:34

原始链接:https://jerryma0912.github.io/2018/03/19/13-loginZUCC/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。