普通用户在命令终端使用Python脚本连入校园网
普通用户在命令终端使用Python脚本连入校园网
想要连入校园网的步骤:
- 浏览器输入对应的IP地址,输入账号密码连网;
- 下载对应软件,输入账号密码连网;
而面对没有界面的服务器,而你又没有root权限,如何上网?
这里参考zxh师兄给的一个脚本,进行以下记录
1. 找到登录时浏览器发送的post请求
进入登录页面,比如的上网登录页面为
http://192.168.6.1/F12打开浏览器的调试页面,找到对应的 NetWork 栏,并选上 Preserver Log
这里需要注意的是,中文版的火狐浏览器这个选项为
持续记录,如下:
然后登录界面输入账号密码后,点击登录,获取POST请求,有如下

这里吐槽一下:学校登录注销界面在windows下采用Chrome/360浏览器 无法注销!找了个有界面的Linux用了火狐才能注销
查看POST请求的对应的请求头与表单请求内容,如下:
请求头:

请求内容:

2. 编写脚本
在知道了发送的Post的请求后就把相应的内容写入Python脚本,后续运行该脚本即可实现与网页登录相同的效果:
找到上述的请求头内容:
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
把请求头加入变量中
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": 账号,
"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脚本连入校园网的更多相关文章
- 如何在命令行里运行python脚本
python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写.python在生物信息.统计.网页制作.计算等多个领域都体现出了强大的功能.python和其他脚本语言如java.R ...
- 命令行运行Python脚本时传入参数的三种方式
原文链接:命令行运行Python脚本时传入参数的三种方式(原文的几处错误在此已纠正) 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. pyth ...
- 如何在cmd命令下运行python脚本
1.打开cmd窗口,输入:cd c:\\python27 (首先得确认python已加入环境变量) 2.第二条命令:python[空格]完整的python脚本路径,运行即可 3.一个案例: Micr ...
- 命令终端执行python
windows进入cmd 1.进入cmd窗口,找到存放py文件的地址(如E:\learn_mock) 2.退出python,输入exit() linux下一样
- python 脚本自动登陆校园网
学校的校园网每次重开电脑时都要重新打开浏览器进行网页登录,繁琐的操作比较麻烦,于是便写了个python的脚本进行自动登录,下面说下具体的操作过程: 1. 方法说明 博主采用的python的 reque ...
- C#调用Python脚本打印pdf文件
介绍:通过pdf地址先将文件下载到本地,然后调用打印机打印,最后将下载的文件删除. 环境:windows系统.(windows64位) windows系统中安装python3.6.2环境 资料: O ...
- win cmd执行Python脚本提示找不到模块问题
Windows关于命令行执行Python脚本,提示找不到模块的问题,我 本人也是在pycharm上运行没毛病的,后来在本地搞了个Jenkins做定时任务,谁知道就提示找不到模块 也百度了很多,都是说什 ...
- spark-submit提交python脚本过程记录
最近刚学习spark,用spark-submit命令提交一个python脚本,一开始老报错,所以打算好好整理一下用spark-submit命令提交python脚本的过程.先看一下spark-submi ...
- 在命令行终端运行 Elisp 脚本
通常,我们在 Emacs 中运行 Elisp 代码片段,但是也可能需要在命令行终端运行 Elisp 脚本程序.在命令行终端运行 Elisp 脚本需要使用 --script 选项,例如: emacs - ...
随机推荐
- shell循环语句for
1.方式1 for i in {list[0]} {list[1]} .. do 执行命令 done 2.方式2(三要素循环) for (( 初始值; 判断值; 步长; )) do 执行命令 done
- ThreadLocal原理简单刨析
ThreadLocal原理简单刨析 ThreadLocal实现了各个线程的数据隔离,要知道数据是如何隔离的,就要从源代码分析. ThreadLocal原理 需要提前说明的是:ThreadLocal只是 ...
- 推荐一款编程字体:Iosevka
最近发现一款很好用的编程字体:Iosevka.它是一款现代化的编程字体集合,除了等宽.oO0 iIl1明显区分等基本特性外,还有很多非常现代的特性,比如: 多种风格:有非常多的字形可供选择,衬线/非衬 ...
- wrap()包裹被选元素的内容
<!doctype html><html><head><meta charset="utf-8"><title>修改代码 ...
- 为什么要设置GOROOT/GOPATH
设置GOROOT的原因 编译器的位置指定的时候,需要指定GO开发包的安装位置,然后设置环境变量PATH的时候,需要指定到安装包下的bin目录,其中就有以下的编译/执行器.所以GOROOT指定了前面的路 ...
- 改Jupyter Notebook的默认工作路径?
如何更改Jupyter Notebook的默认工作路径? 1.在cmd中输入命令使Jupyter产生配置文件:Jupyter_notebook_config.py jupyter notebook - ...
- ECDSA—模逆模块
在有限域Fp上的非零元素a的逆记为a-1mod p .即在有限域Fp上存在唯一的一个元素x,使得ax恒等于1(mod p),则元素x为a的逆a-1 .本次设计采用扩展的整数Euclidean算法来求逆 ...
- flex 简单设置
/*弹性盒子 start*/ /* ============================================================ flex:定义布局为盒模型 flex-v: ...
- ecshop调用指定栏目下的文章的方法
打开 index.php 添加 fun函数一个,需放在<php与?>中间. /** * 获得指定栏目的文章列表. * @param int $cid 栏目ID * @param int $ ...
- Jmeter系列(21)- Jmeter录制手机App请求
前置知识点 Jmeter HTTP代理服务器每次点击启动录制,会往Jmeter的bin目录下生成相关证书,证书有效期是7天 录制前需要先看下证书过期没有,过期了,删除bin目录下的证书,即Apache ...