实现python连接dr校园网

  • 背景
  • 首先
  • 实现

背景

在校园里认证上网很麻烦需要web输入账号密码有时还会忘记web地址此时就需要一个人或者程序帮我们实现,这时我想到用python制作这个程序(初学者python代码不规范)

首先

需要分析web登录网址的浏览器头发现是get方法这就简单了,再次分析get请求发现有user_account字段,user_password字段还有ip字段mac字段这时我们的思路就来了使用curl命令直接把这个代码放到终端里运行发现是可以的

curl "http://学校认证服务器ip:801/eportal/?c=Portal&a=login&callback=dr1004&login_method=1&user_account=你的账号&user_password=你的密码&wlan_user_ip=终端的ip&wlan_user_ipv6=&wlan_user_mac=终端的mac&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.3.3&v=随机四位数/"

返回信息

dr1004({"result":"1","msg":"\u8ba4\u8bc1\u6210\u529f"})

使用unicode在线转中文发现

dr1004({result: "1", msg: "认证成功"})

理论成功

实现

经过分析我们需要以下信息

1.上网账号
2.账号密码
3.设备ip
4.设备mac
5.4位随机数

获取ip(wlan连接)
网上方法很多但都获取不到正确的索性用最笨的方法获取调用 ipconfig /all 方法

import random
import os
import requests
from urllib import parse
mac_ip_hostname=os.popen("ipconfig /all")
macmore=mac_ip_hostname.read()

此时获取的是一大堆网络信息并不是我们想要的所以要用到find方法找到特殊字段的位置

macw=macmore.find("无线局域网适配器 WLAN")

找到了不代表能用现在需要把这个字符串进行截取从找到的位置到之后的400个字符的数据都截取下来
再赋值给别的函数

macm = ''
i=macw
y=macw+400
while i< y:macm += macmore[i]i =i+1

这时定义一个函数来接收400个字符数据,现在的问题是我们还是不能直接使用还要进行截取我们需要的数据,我们还需要find找到 物理地址 这个字段的数据,如法炮制我们进行3次查找就找到了所需要的数据(如果是lan 网线的话,方法一样)

macxw=macm.find("物理地址")
#print(macxw)
x=macxw
y=macxw+50
macxm=''
while x<y:macxm +=macm[x]x =x+1
maci=macxm.find("-")
m1=maci-2
m2=maci-1
m3=maci+1
m4=maci+2
m5=maci+4
m6=maci+5
m7=maci+7
m8=maci+8
m9=maci+10
m10=maci+11
m11=maci+13
m12=maci+14
mac=(macxm[m1]+macxm[m2]+macxm[m3]+macxm[m4]+macxm[m5]+macxm[m6]+macxm[m7]+macxm[m8]+macxm[m9]+macxm[m10]+macxm[m11]+macxm[m12])

我们获取到了mac 这时我们还缺少ip数据,像ip这种数据不是固定字符所以不能用上述一个方法来取值还需要rindex方法,先用上面的方法进行截取数据到IP的数据时我们先将字符串里的数字先遍历出来找到第一个数字的位置,和最后一个数字的位置然后我们在取值就完美解决ip地址字符不确定的问题

ipcxw=macm.find("IPv4 地址")
o=ipcxw+10
p=ipcxw+70
ipc=''
while o<p:ipc +=macm[o]o =o+1
#print(ipc)
op=0
ipsd=''
is_op='0123456789'
isstart = False #定义是否是数字开始的标记变量
for a in ipc: #将数字循环遍历if a in is_op:      #判断取出来的数字是否是数字if isstart==True:ipsd = ipsd+aelse:ipsd = ipsd+aisstart=True
ipzh=(ipsd[len(ipsd)-1])
ipks=(ipsd[0])
ipce=ipc.find(ipks)
ipcea=ipc.rindex(ipzh)
j=ipce
l=ipcea+1
ip = ''
while j<l:ip +=ipc[j]j =j+1

我们还需要随机四位数

c=''
for i in range(4):ch = chr(random.randrange(ord('0'), ord('9') + 1))c += ch

现在我们要用到requests库中的get方法来进行与服务器交流

url="http://学校认证服务器ip:801/eportal/?c=Portal&a=login&callback=dr1004&login_method=1&user_account="+user+"&user_password="+password+"&wlan_user_ip="+ip+"&wlan_user_ipv6=&wlan_user_mac="+mac+"&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.3.3&v="+c+"" (user=你的用户,password=你的账户密码)
qinqiu=requests.get(url)

现在我们需要服务器给我们返回信息

print(str(qinqiu.content))

python连接校园网相关推荐

  1. Python脚本-自动连接校园网

    自动连接校园网 使用语言:Python python爬虫 浏览器:谷歌浏览器 import requests#登录地址 URL="http://10.2.255.26:801/eportal ...

  2. 手把手教你python实现校园网自动连接,零基础也可以轻松实现

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.准备工具 二.具体步骤 1.创建项目和安装request库 a.创建项目 b.安装request库 2.编写程序 a. ...

  3. python+selenium实现自动化连接校园网

    python+selenium实现自动化连接校园网(资源下载链接在总结) 校园网的自动连接 在学校里面,我经常会用到校园WiFi.我个人使用的是办移动套餐送的wifi套餐,因此,我连接的WiFi是NJ ...

  4. 利用Python实现校园网自动登录(部署在树莓派)

    利用Python实现校园网自动登录(部署在树莓派) 项目场景: 在实验室的时候,每天的第一个苦恼就是面对不自动弹窗的校园网登录,且一个账号仅支持两个设备. 实验室使用了路由器,多个设备使用同一个账号上 ...

  5. 小米手机连接校园网无法跳转到登录界面

    问题:小米手机 MIUI12 系统,在连接校园网后显示需要登录,但是无法跳转到登录界面.连接其他wifi是没有问题的,但凡是需要登录的wifi就不行,会出现 net:ERR_CONNECTION_RE ...

  6. Linux服务器连接校园网

    Linux服务器连接校园网 流程 安装图形化界面 安装python及相关包 安装浏览器 安装浏览器驱动 编写脚本 安装图形化界面 之前也想尝试通过terminal模拟发送登录请求,但是比较尝试了几种方 ...

  7. Linux 服务器自动连接校园网,selenium + geckodriver + firefox浏览器

    文章目录 设备信息 一. 下载安装 firefox 浏览器相关驱动 1. firefox 浏览器版本查看 2. 下载对应版本的 selenium 和 geckodriver 驱动 二. 自动连接脚本 ...

  8. 寝室多设备连接校园网的解决方案

    步骤/目录: 1.需求分析 2.解决方案(1)电脑wifi共享(2)手机热点法(3)路由器更改MAC法a.配置路由器b.更改路由器上网方式及MAC地址c.注意事项及改进(4)路由器刷机法a.购买路由器 ...

  9. Python模拟校园网登录

    最近忙着实验室的项目,学习的时间相对较少.前一段时间刚开始接触python时,依葫芦画瓢照着写了一个爬虫,爬取了某个网站的图片.当看到一张张图片自动出现在电脑屏幕上时,有些小小成就感.我想大多数人开始 ...

最新文章

  1. 第三代测序之Pacific Biosciences
  2. Android IOS WebRTC 音视频开发总结(三八)-- tx help
  3. 禅修笔记——硅谷最受欢迎的情商课
  4. arcgis栅格计算器python教程_ArcGIS栅格计算器
  5. ApiOperationSupport注解的使用
  6. ibatis中主键自动增长(Oracle,Ms sql server ,mysql)
  7. Where is ABAP Netweaver HTTP 304 not modified set
  8. 深入探究Spark -- Cluster Manger部署(最常用为YARN实现Task Scheduler)
  9. Element UI table组件源码分析
  10. linux spf13 vim安装,Linux 下安装 spf13-VIM
  11. CentOs基础操作指令(时间日期、搜索查找)
  12. usb连接不上 艾德克斯电源_硬核充电宝?360汽车应急电源入手体验
  13. IV.Indexes(索引)
  14. python解析properties文件
  15. 印度比中国可怕在哪里?一能力或成超越中国的秘密武器
  16. 三十不惑:情商智商决定我能走多快,德商(基本素质)决定我能走多远
  17. LOG4J2-MDC-全链路跟踪等功能研究
  18. 揪出键盘上的“老鼠”
  19. 【译】 SafetyNet: Google's tamper detection - Part 2
  20. google 学术使用技巧

热门文章

  1. WTG: Windows10企业版中安装Docker
  2. Black-Scholes-Merton 方程解(基于风险中性定价)
  3. R语言绘制热图(其实是相关系数图)实践(二)corrplot包
  4. 初识 CGI,CGI 简识
  5. 通俗易懂地了解 Bloom filter
  6. linux 内核usleep,Linux的sleep()和usleep()的使用和区别
  7. DFS DBS算法
  8. 延时100ms的流水灯
  9. SQL 多表查询例题
  10. 创业失败后的他们,是怎么找工作的?