Python實現(xiàn)校園網(wǎng)自動登錄的腳本分享
背景
我在的學校校園網(wǎng)登錄是web式的,即隨便打開一個網(wǎng)頁就會自動跳轉到登錄頁面,然后輸入用戶名密碼,點登錄,便可以上網(wǎng)了。
但這種登錄方式有個缺點:登錄狀態(tài)不會一直保持下去。即過一段時間就會掉線,然后你需要重新登陸才行。這個時間大概是一天。
這就蛋疼了,想讓實驗室的電腦隨時保持聯(lián)網(wǎng)狀態(tài)怎么辦呢?(有時候我需要遠程我的電腦)
這個時候可以用python腳本解決這個問題!
思路
寫一個死循環(huán)一直 ping 8.8.8.8,如果 ping 通說明正連著網(wǎng),進入下一次循環(huán);如果 ping 不通,說明斷網(wǎng)了,嘗試登陸校園網(wǎng),然后進入下一次循環(huán)。即:
ping 8.8.8.8 ---> 如果已聯(lián)網(wǎng) ---> 繼續(xù) ping 8.8.8.8 ---> …… ---> 如果斷網(wǎng) ---> 嘗試登陸 ---> 登陸成功 ---> ping 8.8.8.8 ……
腳本寫好后放到 windows 的計劃任務里設置開機啟動。
或者在linux中設置 crontab,一樣的道理。
技術點
- 利用 python 進行 post 請求
- base64加密解密
- 利用 subprocess 創(chuàng)建子進程
碎碎念
腳本在后臺運行cpu占用大概為 1~2%,內存占用大概為 4M 左右,完全可以接受。
當然如果你有條件的話,運行在內網(wǎng)服務器上也是極好的,順便可以連個路由器出來,這樣實驗室的小伙伴能用不斷網(wǎng)的wifi了……
如果沒有服務器,樹莓派+路由器的組合也是一種解決方案~
當然最省錢的就是我這種把腳本直接跑在自己機器上的……
代碼
#coding=utf8 import urllib,urllib2 import base64 import os , subprocess username = '你的base64加密過的校園網(wǎng)用戶名' password ?= '你的base64加密過的校園網(wǎng)密碼' url = 'https://login.xxxx.edu.cn/auth_action.php' ? # 校園網(wǎng)登陸驗證地址 def isConnecting(): ? ?# Judge network connect status ? ?res = subprocess.call('ping 8.8.8.8 -n 1',shell=True) ? ?return False if res else True def Signon(): ? ?# Sign on ? ?data = { ? ? ? ?'action' : 'login', ? ? ? ?'username' : base64.decodestring(username), ? ? ? ?'password' : base64.decodestring(password), ? ? ? ?'ac_id' : 1, ? ? ? ?'save_me' : 0, ? ? ? ?'ajax' : 1, ? ?} ? ?data = urllib.urlencode(data) ? ?response = urllib2.urlopen(url,data=data) ? ?response = response.read().decode('utf8') ? ?print response def main(): ? ?while True: ? ? ? ?if not isConnecting(): ? ? ? ? ? ?# no-connect status, attempt sign on ? ? ? ? ? ?Signon() if __name__=="__main__": ? ?try: ? ? ? ?main() ? ?except Exception,e: ? ? ? ?print '[ERROR]:', ? ? ? ?print e
這個小腳本很簡單,主要為大家提供一個思路~
編程語言可以方便我們的生活,我想這就是它存在的價值。
到此這篇關于Python實現(xiàn)校園網(wǎng)自動登錄的腳本分享的文章就介紹到這了,更多相關Python校園網(wǎng)自動登錄內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在tensorflow中設置使用某一塊GPU、多GPU、CPU的操作
今天小編就為大家分享一篇在tensorflow中設置使用某一塊GPU、多GPU、CPU的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02基于Python實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng)
為了方便的實現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺直接實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。感興趣的可以跟隨小編一起學習一下2021-12-12