zoukankan      html  css  js  c++  java
  • 校园网自动登录程序

    最近趁校园网免费在抓论文,然而脸黑,老被校园网踢,爱过。

    于是写了一个保驾护航的自动登录~

    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
  • 相关阅读:
    Nginx URL后面不加斜杠301重定向
    Jenkins 配置 Node.js 项目
    在 Linux 上搭建IntelliJ IDEA license server服务器
    Vue 使用细节收集
    sinopia 搭建记录
    cli 开发记录
    Cgroup(一)简介
    Kubernetes (一)POD驱逐
    RabbitMQ(五)镜像队列
    RabbitMQ(四)队列结构
  • 原文地址:https://www.cnblogs.com/bbbbbq/p/5474912.html
Copyright © 2011-2022 走看看