Python實(shí)現(xiàn)校園網(wǎng)自動(dòng)登錄的腳本分享
背景
我在的學(xué)校校園網(wǎng)登錄是web式的,即隨便打開一個(gè)網(wǎng)頁就會(huì)自動(dòng)跳轉(zhuǎn)到登錄頁面,然后輸入用戶名密碼,點(diǎn)登錄,便可以上網(wǎng)了。
但這種登錄方式有個(gè)缺點(diǎn):登錄狀態(tài)不會(huì)一直保持下去。即過一段時(shí)間就會(huì)掉線,然后你需要重新登陸才行。這個(gè)時(shí)間大概是一天。
這就蛋疼了,想讓實(shí)驗(yàn)室的電腦隨時(shí)保持聯(lián)網(wǎng)狀態(tài)怎么辦呢?(有時(shí)候我需要遠(yuǎn)程我的電腦)
這個(gè)時(shí)候可以用python腳本解決這個(gè)問題!
思路
寫一個(gè)死循環(huán)一直 ping 8.8.8.8,如果 ping 通說明正連著網(wǎng),進(jìn)入下一次循環(huán);如果 ping 不通,說明斷網(wǎng)了,嘗試登陸校園網(wǎng),然后進(jìn)入下一次循環(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 的計(jì)劃任務(wù)里設(shè)置開機(jī)啟動(dòng)。
或者在linux中設(shè)置 crontab,一樣的道理。
技術(shù)點(diǎn)
- 利用 python 進(jìn)行 post 請(qǐng)求
- base64加密解密
- 利用 subprocess 創(chuàng)建子進(jìn)程
碎碎念
腳本在后臺(tái)運(yùn)行cpu占用大概為 1~2%,內(nèi)存占用大概為 4M 左右,完全可以接受。
當(dāng)然如果你有條件的話,運(yùn)行在內(nèi)網(wǎng)服務(wù)器上也是極好的,順便可以連個(gè)路由器出來,這樣實(shí)驗(yàn)室的小伙伴能用不斷網(wǎng)的wifi了……
如果沒有服務(wù)器,樹莓派+路由器的組合也是一種解決方案~
當(dāng)然最省錢的就是我這種把腳本直接跑在自己機(jī)器上的……
代碼
#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)登陸驗(yàn)證地址 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
這個(gè)小腳本很簡(jiǎn)單,主要為大家提供一個(gè)思路~
編程語言可以方便我們的生活,我想這就是它存在的價(jià)值。
到此這篇關(guān)于Python實(shí)現(xiàn)校園網(wǎng)自動(dòng)登錄的腳本分享的文章就介紹到這了,更多相關(guān)Python校園網(wǎng)自動(dòng)登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在tensorflow中設(shè)置使用某一塊GPU、多GPU、CPU的操作
今天小編就為大家分享一篇在tensorflow中設(shè)置使用某一塊GPU、多GPU、CPU的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02使用Python對(duì)EXCEL數(shù)據(jù)的預(yù)處理
這篇文章主要介紹了使用Python處理EXCEL基礎(chǔ)操作篇2,如何使用Python對(duì)EXCEL數(shù)據(jù)的預(yù)處理,文中提供了解決思路和部分實(shí)現(xiàn)代碼,一起來看看吧2023-03-03Python數(shù)據(jù)處理的三個(gè)實(shí)用技巧分享
數(shù)據(jù)處理無所不在,掌握常用技巧,事半功倍。這篇文章將使用Pandas開展數(shù)據(jù)處理分析,總結(jié)其中常用、好用的數(shù)據(jù)分析技巧,感興趣的可以學(xué)習(xí)一下2022-04-04python對(duì)指定目錄下文件進(jìn)行批量重命名的方法
這篇文章主要介紹了python對(duì)指定目錄下文件進(jìn)行批量重命名的方法,涉及Python中replace及join方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04通過Python的gtts庫(kù)將文字轉(zhuǎn)為音頻的操作方法
文字轉(zhuǎn)音頻可以幫助視覺障礙者通過聽取聲音來獲取信息,也可以幫助人們方便地聽取一些長(zhǎng)篇文章或?qū)W習(xí)資料,節(jié)省閱讀時(shí)間和疲勞,這篇文章主要介紹了通過Python的gtts庫(kù)將文字轉(zhuǎn)為音頻的方法,需要的朋友可以參考下2023-05-05基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的數(shù)據(jù)管理系統(tǒng)
為了方便的實(shí)現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個(gè)完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺(tái)直接實(shí)現(xiàn)一個(gè)簡(jiǎn)易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。感興趣的可以跟隨小編一起學(xué)習(xí)一下2021-12-12