服务器上实现校园网账号的登录/登出

校园网账号的登录/登出操作在本质上是本机向校内的认证服务器发送了一个含有校园网账号和密码、DHCP 服务器为本机分配的内网 IP,本机的 MAC 地址等信息的网络请求。想要在无图形界面的服务器上实现校园网账号的登录/登出首先需要获取校园网认证服务的 API 接口地址和参数列表。 首先使用浏览器(这里使用网络工具更好用的 Firefox)打开校园网登录界面,F12 打开开发者工具,找到网络一栏。 开发者工具的网络一栏可以实时拦截并解析网页中发送和接收的网络请求,此时输入账号密码并点击登录后即可获得所有相关的网络请求链接。 可以通过过滤 URL 的方式寻找和登录(login)有关的关键字来查找相关网络请求,可以看到这里第一个请求就是校园网账号登录操作的 URL 链接。 浏览器的开发者工具一般都会为每个请求链接提供 cURL 命令格式的复制选项,根据服务器所在的平台不同,复制相应的 cURL 命令即可。由于服务器运行的是 Linux,这里采用 POSIX 标准的命令进行复制。 复制得到的命令中的一些琐碎的参数可以去除,留下关键的参数即可。 原始命令 curl 'https://w.seu.edu.cn:801/eportal/?c=Portal&a=login&callback=dr1003&login_method=1&user_account=校园网账号&user_password=校园网密码&wlan_user_ip=DHCP服务器为本机分配的内网IP&wlan_user_ipv6=&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.3.2&v=4680' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0' -H 'Accept: */*' -H 'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2' -H 'Accept-Encoding: gzip, deflate, br' -H 'Connection: keep-alive' -H 'Referer: https://w.seu.edu.cn/' -H 'Cookie: PHPSESSID=iallep4oe53qg6uc5osr6ir99e' -H 'Sec-Fetch-Dest: script' -H 'Sec-Fetch-Mode: no-cors' -H 'Sec-Fetch-Site: same-site' 精简后的命令 curl 'https://w....

March 8, 2022 · Huo Haodong