手上有一台上古时代的tp-link,获取ip没问题,但是速度太慢,于是研究了水星mac1200R.

通过Firebug研究登陆可以知道

首先登陆的时候,需要将密码编码以后以json形式传给路由器,然后会响应你一个stok作为构造url请求的安全令牌

下面是请求以后获取的stok

然后,除了加载必要的页面以外,所有的通信都是通过js代码xhr请求交换json数据来填充页面的。

比如我们想知道的wan口信息,可以请求

http://192.168.4.1/stok=4f0bd18f8e0b75f6c27f153d63818153/ds

然后请求参数为

{"network":{"name":"wan_status"},"method":"get"}

请求以后获得的响应报文为:

{ "network": { "wan_status": { "down_speed": 0, "up_speed": 0, "ipaddr": "223.243.12.94", "link_status"

: 1, "phy_status": 1, "error_code": 0, "proto": "pppoe", "pri_dns": "61.132.163.68", "gateway": "223

.243.0.1", "up_time": 152098, "snd_dns": "202.102.213.68", "netmask": "255.255.255.255" } }, "error_code"

: 0 }

至此,大体的思路就是:

1、首先构造post请求,获得stok安全令牌

2、通过安全令牌、json请求wan口地址

import urllib.request

import json

#读取内容的函数

def get_data(url,data=None):

headers = {#"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",

#"Referer": "http://192.168.4.1/",

#"Accept": "application/json, text/javascript, */*; q=0.01",

#"X-Requested-With": "XMLHttpRequest",

#"Content-Type": "application/json; charset=UTF-8"

}

#水星的路由器对请求头验证不是很严格,我把这些都关闭了似乎也一切正常,如果你们有需要自己关闭注释

data = json.dumps(data).encode("utf-8")

#data = urllib.parse.urlencode(data)

#data = data.encode("utf-8")

req = urllib.request.Request(url,data,headers)

response = urllib.request.urlopen(req)

data = response.read()

response.close()

return data

#获取令牌

url = "http://192.168.4.1/" #路由器ip

paras = {"method":"do","login":{"password":"AY2X56xURTefwww"}} #密码具体如何加密的不太清楚,我是直接在浏览器上看的

data= get_data(url,paras).decode()

stok = json.loads(data).get("stok")

#通过stok构造url

url = "http://192.168.4.1/stok="+stok+"/ds"

#请求参数

js = {"protocol":{"name":["pppoe","wan"]},"network":{"name":"wan_status"},"method":"get"}

data = get_data(url,js)

#解析获取的数据,取得ip

ip =json.loads(data.decode()).get("network").get("wan_status").get("ipaddr")

各厂商路由器型号各不相同,没有通用的方法,这个只能针对水星路由器,其他情况需要自己分析,如果dd-wrt应该只需要正则就可以,因为他们登陆之前就可以看wan ip。

其实firebugs生成的curl应该更简单,不过没测试过是否可行,当然你也可以自己封装一个适合自己的类curl工具

python获取路由器数据包_python读取路由信息相关推荐

  1. python获取路由器数据包pppoe_[分享]抓包获取PPPOE账号密码 | 霸王硬上弓's Blog

    PPPOE密码忘记了肿么办-本想使用网络上那普及的RASPPPOE方法,怎奈系统是Windows 8 x64,那兼容性担忧啊.正好环境中有ROS路由器,下挂一台二层交换机,上层是一台思科路由.于是便萌 ...

  2. python获取路由器数据包pppoe_PPPoE协议***4:如何得到PPPoE服务器的mac地址

    在局域网中,怎样得到PPPoE服务器的mac地址是一件头疼的事情,特别是在windows环境下:得到PPPoE服务器mac地址的实现方法有两种: 1.在windows下,我们运行wireshark软件 ...

  3. python获取路由器数据包pppoe_python3登录极路由并读取宽带帐号帐号密码.py

    python3登录极路由并读取宽带帐号帐号密码,fiddler抓包分析过程略... 步骤:1.登录路由,提取stok. 2.用stok拼成url,post请求 3.解析json数据 代码: " ...

  4. python获取路由器数据包pppoe_利用PPPOE获取路由器中宽带账号密码

    pppoe工作原理 PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个唯一的PPPoE SESSIO ...

  5. python抓取数据包_python抓数据包

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 前言:数据科学越来越火了,网页是数据很大的一个来源. 最近很多人问怎么抓网页数据 ...

  6. python爬虫网络数据包_Python爬虫之多线程图虫网数据爬取(十六)

    Python爬虫之多线程图虫网数据爬取(十六) 发布时间:2019-05-14 10:11, 浏览次数:289 , 标签: Python 原创不易,转载前请注明博主的链接地址:Blessy_Zhu h ...

  7. python爬虫解析数据包_Python网络爬虫之三种数据解析方式

    引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指 ...

  8. python获取当前路径导包_python 通过文件夹导入包的操作

    通过文件夹导入包要求每个目录下都有一个__init__.py文件,此文件可空白.也可不空.a@ubuntu:~/Desktop$ tree myp myp ├── a │ ├── b.py │ └── ...

  9. python 抓网卡数据包_Python选择网卡发包及接收数据包

    当一台计算机上有多个网卡时,需要选择对应IP地址的网卡进行发送数据包或者接受数据包. 1.选择网卡发包(应用scapy):plface=conf.route.route("××.××.××. ...

最新文章

  1. 谷歌、亚马逊、微软、IBM…这些巨头都已如何通过AI赚到钱了?
  2. 下qemu模拟arm9_QEMU搭建树莓派环境
  3. mysql8.0.12怎么用_Mysql8.0.12安装教程方法 Mysql8.0.12安装教程
  4. 是什么让你的ExtJS应用程序运行缓慢?
  5. 基于SWMM及自主开发城市内涝一维二维耦合软件的复杂城市排水系统建模技术及在城市排涝、海绵城市等领域实践
  6. word根据数字符号自动回车
  7. uniapp 日期插件_日期时间选择器
  8. css黄金色渐变值,金色的rgb值是多少
  9. 交换网络组建实验报告
  10. leapFTP上传网页到服务器,leapftp登录ftp服务器
  11. 制作钓鱼网站进行渗透测试——内网SET工具包
  12. 数学之美 第六章——信息的度量和作用
  13. sap 双计量单位_SAP系统里批次双计量单位的实现
  14. C# :DateTime使用详解
  15. flask导出Excel报表详解
  16. 现代流行的平面设计风格有哪些?——黎乙丙
  17. Dynamics 365 on-premises9.0版本开放下载,附上8.2升级9.0过程
  18. MRS离线数据分析:通过Flink作业处理OBS数据
  19. 战地2服务器2地图修改,【战地2怎么将地图改为32人】如何修改地图_战地2修改地图教程_游戏城...
  20. CultureInfo中重要的InvariantCulture

热门文章

  1. MBG真香 Spring Boot集成Mybatis Generator插件
  2. java获取ajax传值,java取ajax传值
  3. 一步一步从理论到实践实现textrank
  4. 用户密码校验,至少包含大小写字母、数字、特殊字符其中三种,且不少于6位
  5. 微信小程序使用github协作
  6. nginx指定访问路径跳转至指定路径
  7. 期货反向跟单--交易员的培养问题
  8. 【基础理论】专题二:一个合格的实验设计是怎样的?
  9. altium恢复所有默认设置_教程:如何把altium恢复成默认设置
  10. Php 接口能定义常量,关于php:接口常量的优点和缺点