花了兩天的時間大致寫好了,大部分功能都有,下面說一說我的思路
登錄實現
簡單來說,登錄的過程分下面幾步
1)用戶輸入密碼點擊登錄按鈕或觸發JS
2)JS將用戶密碼加密成密文發送給路由器
{"method":"do","login":{"password":"xHVQ3wiBpTefbwK"}}
3)路由器判斷密碼正確否,如果正確則返回:
{"error_code":0, "stok":"%28sq14xBVxEKPg%2EF4%3Ey%3C%2AGif%7EhrDBgR%21r"}
否則:
{"error_code":-40401, "data":{"code":-40401,"time":19,"group":0}}命令執行由上面可知密碼實在前端加密的通過抓包可以看出,瀏覽器向路由器發送命令都是類似Json的格式的數據如獲取AP信息:{"guest_network":{"name":"guest_2g"},"method":"get"}路由器返回也是Json{"guest_network":{"guest_2g":{"ssid":"TPGuest_94D3","encrypt":"0","key":"12345667","enable":"0","accright":"1","upload":"0","download":"0","time_limit":"1","limit_type":"schedule","duration":"0","seccheck":"0"}},"error_code":0}瀏覽器抓包
從上圖可以看出當認證通過後瀏覽器每發送一個消息的URL都是http://GW/stok=xxxxxxx/ds,stok也就是認證通過後路由器返回的
Python實現:
主要模塊:requests
requests.post(url,json)
效果:
代碼放到github:https://github.com/RJLWTF/python_study-script/blob/master/wriless_route_mange.py