Prioritize 发表于 2022-11-12 11:13

校园网一键上线下线小工具附iPhone快捷指令

本帖最后由 Prioritize 于 2023-3-19 11:15 编辑

基于python的校园网一键上线下线小工具
最近一直在网课,校园网只能登陆一台设备,但是一直来回切换就很麻烦。
所以我基于python用几十行代码写了一个简单的exe小程序
先看界面:

功能极简化处理,为了防止出现反复输入密码,或者利用tktiner输入而导致代码过于臃肿,
这里直接将个人信息写入到代码,更轻便更容易上手。



#导入库
import tkinter as tk
import requests
def click_button():#tinker界面上线按钮逻辑函数
    #进行post请求
    z = requests.post(post_addr, data=post_data, headers=post_header)
    html = z.content.decode('utf-8')
    #根据返回html进行处理
    if "success" in html:
      if "在线" in html:
            if "当前已用" in html:
                x = html.split('"')
            else:
                x = (html.split('"'))[-5:]
      else:
                x = html.split('"')
    else:
      if "上限" in html:
            x = (html.split('"'))
      else:
            x = html.split('"')
    print(html.split(","))
    print(html.split(","))
    #调用提示框
    quit(x)
def click_button2():
    #tinker界面下线按钮逻辑函数
    # 进行post请求
    s = requests.post(post_addr2, data=post_data2, headers=post_header2)
    html = s.content.decode('utf-8')
    # 根据返回html进行处理
    x = html.split('"')
    print(html.split(","))
    quit(x)
def quit(x):
    # 设置提示框以及退出罗辑
    root = tk.Tk()
    root.geometry('400x50+720+560')# 大小、位置
    root.title('   ')
    tk.Label(root, text=x, justify='left', anchor='nw', font=('楷体', 18), fg='black', padx=20,
             pady=10, ).pack()# 内容的格式和位置
    # 自动退出
    if x in ['su', '已经', '下线']:#quit函数会根据此列表来判断时候成功运行自动关闭
      root.after(700, root.destroy)
      window.after(900, window.destroy)
      return
    root.after(400, root.destroy)
post_data = {#上线按钮post方法传入表单
'userId': '123',
'password': '123',
'method': 'login',
'queryString': 'wlanuserip%3Dba98f72ba688ba1b2e6956adfd675f5f%26wlanacname%3D9849cc5fe582c551d9e3eed4cf0d73c4%26ssid%3D%'
               '26nasip%3D518f32fe1f6799fd406a10390c7639d5%26snmpagentip%3D%26mac%3Dce72abdafb3b5f373ee63af4e3feb19a%26t%'
               '3Dwireless-v2%26url%3Df096fb179a85a017da7bcd02fa355b6f2203c39847362bc0%26apmac%3D%26nasid%3D9849cc5fe582c'
               '551d9e3eed4cf0d73c4%26vid%3Ddce772562596c610%26port%3D2fc6cb63f8cf7590%26nasportid%3D43511eea552cb67d88d6'
               '841873c14058a52a3c79a14f2a4078dee814504073cb',
'passwordEncrypt': 'false'
}
post_data2 = {#下线按钮post方法传入表单
    'method': 'logout'
}
post_addr = "http://172.16.2.100/eportal/InterFace.do?method=login"#上线html地址
post_addr2 = "http://172.16.2.100/eportal/InterFace.do?method=logout"#下线html地址
post_header = {#模拟浏览器访问
    'Accept': '*/*',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'Connection': 'keep-alive',
    'Content-Length': '632',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'Cookie': 'EPORTAL_COOKIE_OPERATORPWD=; EPORTAL_COOKIE_SERVER=; EPORTAL_AUTO_LAND=; EPORTAL_COOKIE_DOMAIN=; EPORTAL_C'
            'OOKIE_SERVER_NAME=; EPORTAL_COOKIE_USERNAME=; EPORTAL_COOKIE_PASSWORD=; EPORTAL_COOKIE_SAVEPASSWORD=false; '
            'EPORTAL_USER_GROUP=2020%E7%BA%A7%E6%9C%AC%E7%A7%91; JSESSIONID=27ADED1AF4049155790B8130E68EDACE',
    'Host': '172.16.2.100',
    'Origin': 'http://172.16.2.100',
    'Referer': 'http://172.16.2.100/eportal/index.jsp?wlanuserip=ba98f72ba688ba1b2e6956adfd675f5f&wlanacname=9849cc5fe582'
               'c551d9e3eed4cf0d73c4&ssid=&nasip=518f32fe1f6799fd406a10390c7639d5&snmpagentip=&mac=ce72abdafb3b5f373ee63'
               'af4e3feb19a&t=wireless-v2&url=f096fb179a85a017da7bcd02fa355b6f2203c39847362bc0&apmac=&nasid=9849cc5fe582'
               'c551d9e3eed4cf0d73c4&vid=dce772562596c610&port=2fc6cb63f8cf7590&nasportid=43511eea552cb67d88d6841873c140'
               '58a52a3c79a14f2a4078dee814504073cb',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safa'
                  'ri/537.36 Edg/107.0.1418.35',
}
post_header2 = {#模拟浏览器访问
    'Accept' : '*/*',
    'Accept-Encoding' : 'gzip, deflate ' ,
    'Accept-Language' : 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'Connection' : 'keep-alive ',
    'Content-Length' : '128 ',
    'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8 ',
    'Cookie' : 'EPORTAL_COOKIE_OPERATORPWD=; EPORTAL_COOKIE_SERVER=; EPORTAL_AUTO_LAND=; EPORTAL_COOKIE_DOMAIN=; EPORTAL_'
               'COOKIE_SERVER_NAME=; EPORTAL_COOKIE_USERNAME=; EPORTAL_COOKIE_PASSWORD=; EPORTAL_COOKIE_SAVEPASSWORD=false'
               '; EPORTAL_USER_GROUP=null; JSESSIONID=46F12FF101FA64ADA050C3C962B35718 ',
    'Host' : '172.16.2.100 ',
    'Origin' : 'http://172.16.2.100 ',
    'Referer' : 'http://172.16.2.100/eportal/success.jsp?userIndex=3531386633326665316636373939666434303661313033393063373'
                '6333964355f31302e3130302e35352e3130315f303232393030323030333437 ',
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Saf'
                   'ari/537.36 Ed ',
}
window = tk.Tk()#设置主界面
window.title(''),window.geometry('600x150+600+500')#设置标题、大小、偏移量
tk.Button(#设置tinker界面上线按钮
    window,text='上线',
    font=("宋体",40,"bold"),
    fg='#e0eee8',bg='#5698c3',
    relief="ridge",
    command=click_button).pack(expand=True, fill="both", padx=10, pady=10, side="left")
tk.Button(#设置tinker界面下线按钮
    window,text='下线',
    font=("宋体",40,"bold",),
    fg='#e0eee8',bg='#5698c3',
    relief="ridge",
    command=click_button2).pack(expand=True, fill="both", padx=10, pady=10, side="left")
window.mainloop()#输出
代码改好之后就可以打包成exe了,用的是pyinstaller,代码如下。
pyinstaller -D -w -i 1.ico 搞定校园网.py   
#注释在这里#

之后你就得到了一个有模有样的小程序啦

郑财校园网.txt :https://wwp.lanzoub.com/i37YH0frngvi
所有文件:https://wwoa.lanzoub.com/ixjJI0p5864j
另外基于这个思路我做了一个快捷指令有iPhone的朋友可以直接使用
链接:https://www.icloud.com/shortcuts/a162f999ca274b8d8424e8dee5fa3cbb

Prioritize 发表于 2022-11-12 12:19

bananas12138 发表于 2022-11-12 12:17
所有校园网都可以用吗?

万变不离其宗,不同的校园网或者ip有不同的repuest请求,request代码部分要自己改,这个很简单的晚上三分钟学会

Prioritize 发表于 2022-11-12 16:59

侃遍天下无二人 发表于 2022-11-12 16:35
原理是模拟点击校园网的客户端还是只模拟了登录请求,如果是后者应该可以做一个在路由器上跑的版本

都可以实现的,主要是我嫌麻烦直接用模拟的登录请求,
目的达到了肯定选最简单的

xiaomianao 发表于 2022-11-12 12:07

唐小样儿 发表于 2022-11-12 12:08

网络卡,有办法搞吗

Mister.You 发表于 2022-11-12 12:13

学习学习

Prioritize 发表于 2022-11-12 12:14

本帖最后由 Prioritize 于 2022-11-12 14:03 编辑

唐小样儿 发表于 2022-11-12 12:08
网络卡,有办法搞吗
啊这,网卡的话是看是网络设置了上限还是基站就是卡
如果是单位对网速进行设置的话,给电脑配置选择吞吐量级别高一点,应该会好一点

shenhua97 发表于 2022-11-12 12:16

爱了爱了,不过用不到了,当时有就好了…

sevendemons 发表于 2022-11-12 12:16

哈哈我也试试

bananas12138 发表于 2022-11-12 12:17

所有校园网都可以用吗?

azsx 发表于 2022-11-12 12:18

exe直接能运行嘛

akillking 发表于 2022-11-12 12:19

下载一个试试
页: [1] 2 3 4 5 6 7 8
查看完整版本: 校园网一键上线下线小工具附iPhone快捷指令