南信大 校園網 登陸 登出 python實現

2021-08-28 20:05:30 字數 3198 閱讀 4394

開啟電腦,無線網每次連線校園網(i-nuist)的時候都會跳出乙個認證介面,認證完才能上網,我的電腦有時候還抽風跳不出來這個網頁,於是我就想做個登陸的指令碼,連線上無線網直接手動雙擊登陸就好了。

工具:

1.python3.6

2.requests模組 和 base64模組

3.google chrome瀏覽器

過程:我試了幾下登陸,發現那就是個post過程。

開啟谷歌瀏覽器

輸入**:

輸入校園網賬號密碼,按下f12開始抓包咯。。

就抓到了一條post包,還是jquery的。。。。

既然是post的包,當然要看它傳的data了。。

傳送的資料:

post最關鍵的就是data包了,這個包也就password是加密的,其他還好,接下來就搞一下這個加密吧。。

先看一下它的長度,8位的,猜了乙個md5加密,試了一下,發現不是。。

接下來怎麼辦呢。。。。

只能從他的js裡面找它的加密方法,當然不是一行一行的分析它的原始碼,這樣會累死的

開啟f12裡面的search,尋找關鍵字password

很明顯是在login.js裡面

於是,開啟這個檔案,找啊找啊(此處省略過程),發現了點頭緒。

還好我暑假看過一點jquery的基礎,看得懂他的ajax 跨域請求

看他的data項,找到了base64的加密,然後後面測試了一下也是正確的。

post請求的data應該可以構造了。

接下來看看,它要不要加什麼協議頭 ,cookie什麼的。。。

檢視它的 請求頭

其他都好構造,好像需要cookie

看了一下這兩個cookie,應該是進入網頁的時候生成的。

所以這個模擬登陸的正確流程應該是

開啟網頁 a.nuist.edu.cn 獲得cookie

向 a.nuist.edu.cn/index.php/index/login 攜帶cookie傳送post請求

我試了試,好像直接post 是可以的,不需要獲取cookie,我想多了。

傳送post後 他會返回乙個json格式的資訊,來告知你是否登陸成功

接下來是python**

登陸函式:

需要requests 模組 和 base64模組

def login(username='賬號',password='密碼',domain='unicom'):     #要輸入賬號密碼啊。。。

password = base64.b64encode(password.encode()).decode() #base64加密。。

url="/index.php/index/login"

dv=try: #用try來防止未知錯誤。

r = requests.post(url,data=dv) #傳送post

r.raise_for_status() #錯誤丟擲異常

return r.json() 返回json格式的資料

except:

print('error')

完整**:

import requests   #導入庫

import base64

def login(username='賬號',password='密碼',domain='unicom'): #要輸入賬號密碼啊。。。

password = base64.b64encode(password.encode()).decode() #base64加密。。

url="/index.php/index/login"

dv=try: #用try來防止未知錯誤。

r = requests.post(url,data=dv) #傳送post

r.raise_for_status() #錯誤丟擲異常

return r.json() 返回json格式的資料

except:

print('error')

#下面輸入你的賬號密碼,運營商:移動cmcc 聯通unicom 電信chinanet

dic=login('你的賬號','密碼','運營商')

for i in list(dic.keys()):

if dic[i]:

print(i+":"+str(dic[i])) #輸出登陸資訊,成功與否

input()

登出的**也放上來:

比較簡單

import requests

def logout():

url = '/index.php/index/logout'

try:

r = requests.post(url,timeout=30)

r.raise_for_status()

return r.json()['info']

except:

print('error')

#def main():

print(logout())

input()

此外,如果你不想連線上無線網就彈出登陸網頁的話,那就要手動修改一下登錄檔了。

開啟登錄檔

hkey_local_machine\system\currentcontrolset\services\nlasvc\parameters\internet 中enableactiveprobing 調成0就行了

校園網試煉 登出

今天就是小雪了,淮河以北已經開始降溫,宿舍6個人的熱氣加上暖氣,實在是不能再舒服,宿舍裡頭穿一件,出宿舍門穿兩件,出宿舍樓穿羽絨服,出學校 哦不這學期學校都不會解封。回到正題,在校園網不收錢的時候就已經嘗試過對校園網自動登入 佔線 登出等功能。用python實現起來也簡單,簡單的指令碼無非就是發包。...

校園網資訊收集

訪問連線 仔細觀察url wlanuserip 10.133.243.201 使用者的ip,連線校園網後會通過dhcp分配乙個ip位址 在我們登入之後的時候再次觀察url 注 返回2.htm是認證失敗 返回3.htm是認證成功 wlanuserip 10.133.243.201 wlanacname...

校園網arp病毒防範

學校裡arp欺騙很嚴重,網路中心貼出了幾個解決方法,其中乙個如下 解決辦法 1 在dos介面下輸入 arp d 清除本機的arp表,arp表被清除後系統會自動重建新的arp表,獲取到正確閘道器後重新嘗試上網,arp d 命令並不能抵禦arp欺騙。2 開機自動繫結閘道器 新建記事本檔案,內容如下 以四...