普通用户在命令终端使用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. shell循环语句for

    1.方式1 for i in {list[0]} {list[1]} .. do 执行命令 done 2.方式2(三要素循环) for (( 初始值; 判断值; 步长; )) do 执行命令 done

  2. ThreadLocal原理简单刨析

    ThreadLocal原理简单刨析 ThreadLocal实现了各个线程的数据隔离,要知道数据是如何隔离的,就要从源代码分析. ThreadLocal原理 需要提前说明的是:ThreadLocal只是 ...

  3. 推荐一款编程字体:Iosevka

    最近发现一款很好用的编程字体:Iosevka.它是一款现代化的编程字体集合,除了等宽.oO0 iIl1明显区分等基本特性外,还有很多非常现代的特性,比如: 多种风格:有非常多的字形可供选择,衬线/非衬 ...

  4. wrap()包裹被选元素的内容

    <!doctype html><html><head><meta charset="utf-8"><title>修改代码 ...

  5. 为什么要设置GOROOT/GOPATH

    设置GOROOT的原因 编译器的位置指定的时候,需要指定GO开发包的安装位置,然后设置环境变量PATH的时候,需要指定到安装包下的bin目录,其中就有以下的编译/执行器.所以GOROOT指定了前面的路 ...

  6. 改Jupyter Notebook的默认工作路径?

    如何更改Jupyter Notebook的默认工作路径? 1.在cmd中输入命令使Jupyter产生配置文件:Jupyter_notebook_config.py jupyter notebook - ...

  7. ECDSA—模逆模块

    在有限域Fp上的非零元素a的逆记为a-1mod p .即在有限域Fp上存在唯一的一个元素x,使得ax恒等于1(mod p),则元素x为a的逆a-1 .本次设计采用扩展的整数Euclidean算法来求逆 ...

  8. flex 简单设置

    /*弹性盒子 start*/ /* ============================================================ flex:定义布局为盒模型 flex-v: ...

  9. ecshop调用指定栏目下的文章的方法

    打开 index.php 添加 fun函数一个,需放在<php与?>中间. /** * 获得指定栏目的文章列表. * @param int $cid 栏目ID * @param int $ ...

  10. Jmeter系列(21)- Jmeter录制手机App请求

    前置知识点 Jmeter HTTP代理服务器每次点击启动录制,会往Jmeter的bin目录下生成相关证书,证书有效期是7天 录制前需要先看下证书过期没有,过期了,删除bin目录下的证书,即Apache ...