毎回手動でログインするのは非常に面倒ですし、時々中断されるので、スクリプトを作成して定期的に監視し、切断して再接続する方が便利です。このスクリプトの書き方についてはここでは説明しませんが、ログイン時のパケット キャプチャの内容のみを記録します。
心配しないで、すぐに分析に進みましょう。複雑ではないので、誰でも一目で理解できると思います。
目次
パケットキャプチャ分析
オフィスエリアネットワークのログインアドレス:https ://172.25.31.129:9444/
Base64 エンコードについては、こちらを参照してください: Base64 オンライン エンコードとデコード | Base64 暗号化と復号化 - Base64.us
主な情報を抽出します。
请求 URL:
https://172.25.31.129:9444/byod/byodrs/login/defaultLogin
请求方法:
POST
请求头:
cookie=testcookie=yes; userip=分给你的IP,连上WiFi就会给你
请求负载:(为方便展示,实际请求时候不要有空格或者换行)
{
"username":"你的学号",
"userPassword":"登录密码并使用base64编码",
"serviceSuffixId":"-1",
"dynamicPwdAuth":false,
"code":"",
"codeTime":"",
"validateCode":"",
"licenseCode":"",
"userGroupId":0,
"validationType":0,
"guestManagerId":0,
"shopIdE":null,
"wlannasid":null
}
郵便配達員テストのリクエスト
Pythonシミュレーション
import requests
import socket
def get_local_ip():
ip_address = ''
try:
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
except:
pass
return ip_address
url = r'https://172.25.31.129:9444/byod/byodrs/login/defaultLogin'
data = {"userName":"学号","userPassword":"密码的base64编码","serviceSuffixId":"-1","dynamicPwdAuth":False,"code":"","codeTime":"","validateCode":"","licenseCode":"","userGroupId":0,"validationType":0,"guestManagerId":0,"shopIdE":None,"wlannasid":None}
headers = {"cookie":"testcookie=yes; userip="+get_local_ip()}
res = requests.post(url, json=data, headers=headers, verify=False).text
print(res)