Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
网卡模式下获取Air720的运行状态
Air720
不改内核,不走AT,通过模拟浏览器访问的方式,用代码的获取Air720的状态信息(例如信号强度和iccid ), 详解模拟过程并提供实例代码
## 背景 1. 需要获取联网状态,设备识别号(IMEI),ICCID,重启设备 2. 通过AT可以获取网络状态,SIM的ICCID 3. linux下需要修改内核驱动才能出AT口 ## 效果预览 获取信息 ```json { "sysinfo": { "hardware_version": "NZ_SSG_V20", "device_name": "MIFI", "version_num": "NZ_NZ_CP_2.174.000X", "version_date": "Oct 6 2018", "model_name": "LV01", "main_chip_name": "PXA1802", "ssg_version": "LV01MVL01", "ssg_compile_time": "Oct 6 2018 10:38:24", "current_device_mac": "ac:3d:d3:d5:6d:af" }, "wan": { // ... "IMEI": "869300038716XXX" // ... } //... 剩下的省略 } ``` ## 突破口 1. 设备自带一个网页管理工具 2. 该工具需要登录,基于变种的Digest realm登录验证 3. 网页是通过ajax访问/xml_action.cgi读取和操作设备 4. 必须先完成一次登录,才能通过普通的Digest realm机制访问xml_action ## 操作流程 ``` 1. 访问/login.cgi,服务器返回header WWW-Authenticate 2. 解析WWW-Authenticate,得到nonce 3. 先使用uri=/cgi/protected.cgi生成签名,作为url参数. 这点非常重要 4. 再使用uri=/cgi/xml_action.cgi生成普通的Digest realm签名,放入header 5. 使用上两步的参数和签名,访问/login.cgi, 服务器返回200代表登录成功,500代表失败 6. 使用普通Digest realm签名,访问/xml_action.cgi, 可以读取和操作设备 ``` ### Digest realm签名算法简介 https://zh.wikipedia.org/wiki/HTTP%E6%91%98%E8%A6%81%E8%AE%A4%E8%AF%81 ``` HA1 = md5_hex(username:realm:password) HA2 = md5_hex(method:uri) // method是GET/POST/PUT等, uri是/cgi/protected.cgi(仅登录)或/xml_action.cgi // 其中nonce是访问/login.cgi时获取的 // nonceCount是16进制自增数列,login总是1,后续请求逐次+1 // clientNonce是客户端随机字符串,长度12字节,数字+字母就行 // qop总是auth RE = md5_hex(HA1:nonce:nonceCount:clientNonce:qop:HA2) ``` ## 演示代码 基于Java的示例代码,2018-10-06的AT固件验证有效 https://gitee.com/wendal/Air720Master ## 附上部分可以操作 module总是duster,还没发现例外 ``` // http://192.168.0.1/xml_action.cgi?method=get&module=duster&file=status1 // 全部状态? status1 // 流量信息 statistics // 上网配置 wan // 局域网配置 lan // PIN/PUK设置 pin_puk // USSD设置 ussd // 联网设备 device_management_all // 设备统计 device_management // 日志 detailed_log // 自定义防火墙 custom_fw // 端口过滤 port_filter // 端口转发 port_forwarding // 电话本 phonebook // 短信 message // 管理员配置 admin // 固件版本 firmware // 重启 reset ```
发表于 2018-10-09 11:33
阅读 ( 3968 )
分类:
默认分类
7 推荐
打赏
收藏
你可能感兴趣的文章
稀饭放姜 iRTU 学习日记 (1):认识iRTU开源电路
4372 浏览
Air系列AT控制命令,针对STM32F103C8T6的示例代码
4620 浏览
教你用Air720 模块通过AT指令以MQTTS方式连接华为云(下篇)
4411 浏览
教你用Air720 模块通过AT指令以MQTTS方式连接华为云(上篇)
6117 浏览
Air720搭配Air530实现4G+GPS定位
5410 浏览
Air720系列模块如何设置频段
5260 浏览
相关问题
AIR720H RNDIS linux下虚拟串口一段时间后会无效?
0 回答
WIN10下,AIR720 如何PPP拨号?
0 回答
有关air720的141LDO引脚设置的问题
1 回答
Air720D开发板可以在设置GPIO为中断以后再切换为输出模式吗?
2 回答
air720H何时开放C_SDK
1 回答
air720H USB读写U盘
1 回答
0 条评论
请先
登录
后评论
技术销售Wendal
软件工程师
15 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!