普通用户在命令终端使用Python脚本连入校园网

想要连入校园网的步骤:

  • 浏览器输入对应的IP地址,输入账号密码连网;
  • 下载对应软件,输入账号密码连网;

而面对没有界面的服务器,而你又没有root权限,如何上网?

这里参考zxh师兄给的一个脚本,进行以下记录

1. 找到登录时浏览器发送的post请求

  1. 进入登录页面,比如的上网登录页面为http://192.168.6.1/

  2. F12 打开浏览器的调试页面,找到对应的 NetWork 栏,并选上 Preserver Log

    这里需要注意的是,中文版的火狐浏览器这个选项为持续记录,如下:

  3. 然后登录界面输入账号密码后,点击登录,获取POST请求,有如下

    这里吐槽一下:学校登录注销界面在windows下采用Chrome/360浏览器 无法注销!找了个有界面的Linux用了火狐才能注销

  4. 查看POST请求的对应的请求头表单请求内容,如下:

    • 请求头:

    • 请求内容:

2. 编写脚本

在知道了发送的Post的请求后就把相应的内容写入Python脚本,后续运行该脚本即可实现与网页登录相同的效果:

  1. 找到上述的请求头内容:

    POST /a70.htm HTTP/1.1
    Host: 192.168.6.1
    User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 72
    Origin: http://192.168.6.1
    Connection: keep-alive
    Referer: http://192.168.6.1/a70.htm
    Upgrade-Insecure-Requests: 1
  2. 把请求头加入变量中

    headers = {
    "Host": "192.168.6.1",
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
    "Accept-Encoding": "gzip, deflate",
    "Content-Type": "application/x-www-form-urlencoded",
    "Content-Length": "72",
    "Origin": "http://192.168.6.1",
    "Connection": "keep-alive",
    "Referer": "http://192.168.6.1/a70.htm",
    "Upgrade-Insecure-Requests": "1"
    }
  3. 再根据表单数据构造登录内容

    data = {
    "DDDDD": 账号,
    "upass": 密码,
    "R1": "0",
    "R2": "",
    "R6": "0",
    "para": "00",
    "0MKKey": "123456"
    }

3. 完整脚本

#encoding=utf-8、
# 运行命令: python3 login.py --account 校园网账号 --password 校园网密码
import requests
import argparse def parse_args():
"""
Parse input arguments
"""
parser = argparse.ArgumentParser(description='Train a chinese')
parser.add_argument('--account', dest='account',
help='account', type=str)
parser.add_argument('--password', dest='password',
help='password', type=str)
args = parser.parse_args()
return args args = parse_args() # 请求头
headers = {
"Host": "192.168.6.1",
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
"Accept-Encoding": "gzip, deflate",
"Content-Type": "application/x-www-form-urlencoded",
"Content-Length": "72",
"Origin": "http://192.168.6.1",
"Connection": "keep-alive",
"Referer": "http://192.168.6.1/a70.htm",
"Upgrade-Insecure-Requests": "1"
} # 请求表单数据
data = {
"DDDDD":args.account,
"upass":args.password,
"R1": "0",
"R2": "",
"R6": "0",
"para": "00",
"0MKKey": "123456"
} # 请求的url地址
url ='http://192.168.6.1/a70.htm' session = requests.Session()
session.post(url, headers = headers, data = data)
print("ok")

运行该脚本:python3 login.py --account 校园网账号 --password 校园网密码

即可实现登录

普通用户在命令终端使用Python脚本连入校园网的更多相关文章

  1. 如何在命令行里运行python脚本

    python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写.python在生物信息.统计.网页制作.计算等多个领域都体现出了强大的功能.python和其他脚本语言如java.R ...

  2. 命令行运行Python脚本时传入参数的三种方式

    原文链接:命令行运行Python脚本时传入参数的三种方式(原文的几处错误在此已纠正) 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. pyth ...

  3. 如何在cmd命令下运行python脚本

    1.打开cmd窗口,输入:cd c:\\python27  (首先得确认python已加入环境变量) 2.第二条命令:python[空格]完整的python脚本路径,运行即可 3.一个案例: Micr ...

  4. 命令终端执行python

    windows进入cmd 1.进入cmd窗口,找到存放py文件的地址(如E:\learn_mock) 2.退出python,输入exit() linux下一样

  5. python 脚本自动登陆校园网

    学校的校园网每次重开电脑时都要重新打开浏览器进行网页登录,繁琐的操作比较麻烦,于是便写了个python的脚本进行自动登录,下面说下具体的操作过程: 1. 方法说明 博主采用的python的 reque ...

  6. C#调用Python脚本打印pdf文件

     介绍:通过pdf地址先将文件下载到本地,然后调用打印机打印,最后将下载的文件删除. 环境:windows系统.(windows64位) windows系统中安装python3.6.2环境 资料: O ...

  7. win cmd执行Python脚本提示找不到模块问题

    Windows关于命令行执行Python脚本,提示找不到模块的问题,我 本人也是在pycharm上运行没毛病的,后来在本地搞了个Jenkins做定时任务,谁知道就提示找不到模块 也百度了很多,都是说什 ...

  8. spark-submit提交python脚本过程记录

    最近刚学习spark,用spark-submit命令提交一个python脚本,一开始老报错,所以打算好好整理一下用spark-submit命令提交python脚本的过程.先看一下spark-submi ...

  9. 在命令行终端运行 Elisp 脚本

    通常,我们在 Emacs 中运行 Elisp 代码片段,但是也可能需要在命令行终端运行 Elisp 脚本程序.在命令行终端运行 Elisp 脚本需要使用 --script 选项,例如: emacs - ...

随机推荐

  1. noip模拟48

    A. Lighthouse 很明显的容斥题,组合式与上上场 \(t2\) 一模一样 注意判环时长度为 \(n\) 的环是合法的 B. Miner 题意实际上是要求偶拉路 对于一个有多个奇数点的联通块, ...

  2. 如何实现自定义sk_buff数据包并提交协议栈

    目录 一.自定义数据包的封装流程 1. 分配skb 2.初始定位(skb_reserve) 3.拷贝数据(skb_push / skb_pull / skb_put / ) 4.设置传输层头部 5.设 ...

  3. 数据结构(c++)(第二版) Dijkstra最短路径算法 教学示范代码出现重大问题!

    前言 去年在数据结构(c++)的Dijkstra教学算法案例中,发现了一个 bug 导致算法不能正常的运行,出错代码只是4行的for循环迭代代码. 看到那里就觉得有问题,但书中只给了关键代码的部分,其 ...

  4. python win32com 处理excle 写一个公共的类

    利用win32com处理excle,这样可以不管文件是老的xls还是新的xlsx格式,非常方便. 类的源码如下: import win32com.client as win32 class easyE ...

  5. js不记录某个url链接历史访问,返回时不返回该链接

    (function(){ var fnUrlReplace = function (eleLink) { if (!eleLink) { return; } var href = eleLink.hr ...

  6. Docker系列(12)- 部署Tomcat

    #官方的使用:我们之前的启动都是后台,停止容器后,容器还是可以看到#docker run -it --rm,一般用来测试,用完就会删除容器,镜像还在[root@localhost ~]# docker ...

  7. php 设计模式 --桥接模式

    php抽象类和接口的区别 https://www.cnblogs.com/vinter/p/8716685.html 什么时候适合使用 --- 多个角色配合工作:抽象角色对应具体角色: <?ph ...

  8. redis代替mybatis做缓存

    将redis作为缓存 <dependencies> <dependency> <groupId>org.springframework.boot</group ...

  9. PolarDB PostgreSQL logindex 设计

    背景介绍 PolarDB采用了共享存储一写多读架构,读写节点RW和多个只读节点RO共享同一份存储,读写节点可以读写共享存储中的数据:只读节点仅能各自通过回放日志,从共享存储中读取数据,而不能写入,只读 ...

  10. 华为云计算IE面试笔记-请描述华为容灾解决方案全景图,并解释双活数据中心需要从哪些角度着手考虑双活设计

    容灾全景图: 按照距离划分:分为本地容灾 同城容灾 异地容灾  本地容灾包括本地高可用和本地主备.(本数据中心的两机房.机柜) 本地高可用这个方案为了保持业务的连续性,从两个层面来考虑: ①一个是从主 ...