校園網自動登錄程序


最近趁校園網免費在抓論文,然而臉黑,老被校園網踢,愛過。

於是寫了一個保駕護航的自動登錄~

 

Step1:分析包

之前我天真的以為里面只要寫了用戶名和密碼就行= = 啊我要找時間補計算機網絡。。

在瀏覽器裝了FireBug插件,手動登錄了一下抓下了包。

分析一下:

1.在網絡選項下,看到發送的地址是,鼠標移上去可以看到具體地址,不好截圖就不截了。

2.展開它,在請求頭信息里可以看到一堆東西,這里只需要Host 和Referer就差不多了

3.在Post欄,看到具體發送的參數

 

然后基本信息就准備好了。

 

Step2:檢測是否有網絡連接

打開一個網頁看能否打開,由於在未登錄狀態打開網頁會被定向到登錄的頁面(也可能直接打不開),所以先檢測是否能打開,如果是的話,分析頁面元素檢測Title是否一致。

在這里微軟大法好用了Bing當作測試頁面=w=

 

Step3:構建自己的數據包並發送

這里用Python大法好。

 

具體看代碼

 

 1 import os
 2 from bs4 import  BeautifulSoup
 3 from urllib.parse import urlencode
 4 from urllib.request import urlopen
 5 from urllib.request import build_opener
 6 from urllib.request import HTTPCookieProcessor
 7 from urllib.request import Request
 8 import http.cookiejar
 9 import time
10 def CheckLink():
11     url = 'http://cn.bing.com'
12 
13     try:
14         html = urlopen(url).read().decode("utf-8")
15     except:
16         return False
17 
18     bsObj = BeautifulSoup(html)
19     print (bsObj.title)
20     if(bsObj.title == None or bsObj.title.get_text() == '登錄'):
21         return False
22     return True
23 
24 
25 def MakeLink():
26 
27     url = 'http://10.0.0.55:801/include/auth_action.php'
28     #set Post paras
29     userData = {
30         "action":"login",
31         "username":"",
32         "password":"",
33         "ac_id" : "1",
34         "user_ip":"",
35         "nas_ip":"",
36         "user_mac":"",
37         "save_me":"1",
38         "ajax":"1"
39     }
40     postData = urlencode(userData).encode(encoding='utf-8')
41     headers = {
42         "host":'10.0.0.55:804',
43         "Referer":'http://10.0.0.55:801/srun_portal_pc.php'
44     }
45     cookiejar = http.cookiejar.CookieJar()
46 
47     #open in glabal
48     opener = build_opener(HTTPCookieProcessor(cookiejar))
49 
50     #get cookiejar
51     req = Request(url, postData, headers)
52     result = opener.open(req)
53     print (result.read())
54 
55     return
56 
57 def main():
58     while(True):
59         if(CheckLink() == False):
60             print ('outline')
61             MakeLink()
62         else: print('inline')
63         time.sleep(60)
64 
65 if __name__ == '__main__':
66     main()
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM