当前位置: 首页 > news >正文

openwrt开发包含路由器基本功能的web问题记录

1.这里的扫描怎么实现的先找一些luci代码,在openwrt21版本后,luci用js替换了lua写后台,先找一些代码路径

在openrwt15这部分代码是在这个目录下

feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_join.htm

里面包含了html和lua,我们看一些lua部分是怎么实现的,直接copy代码

#!/usr/bin/luadev = arg[1]
local sys = require "luci.sys"
local utl = require "luci.util"
local iw = luci.sys.wifi.getiwinfo(dev)function scanlist(times)local i, k, vlocal l = { }local s = { }for i = 1, times dofor k, v in ipairs(iw.scanlist or { }) doif not s[v.bssid] thenl[#l+1] = vs[v.bssid] = trueendendendreturn lendfunction format_wifi_encryption(info)if info.wep == true thenreturn "WEP"elseif info.wpa > 0 thenreturn string.format("Pairwise: %s / Group: %s >%s - %s",table.concat(info.pair_ciphers, ", "),table.concat(info.group_ciphers, ", "),(info.wpa == 3) and string.format("mixed WPA/WPA2")or (info.wpa == 2 and "WPA2" or "WPA"),table.concat(info.auth_suites, ", "))elseif info.enabled thenreturn unknownelsereturn openendendfor i, net in ipairs(scanlist(3)) donet.encryption = net.encryption or { }print("channel:",net.channel);print("ssid:",net.ssid);print("bssid:",net.bssid);print("Mode:",net.mode);wep=net.encryption.wep and 1 or 0print("Encryption:",format_wifi_encryption(net.encryption));print("");
end

使用方法:

root@OPENWRT:~# ./test.lua ra0

还有就是openwrt和Web服务器的交互,我们请求了Web服务器,它不是回josn格式或者什么xml格式数据,而是直接回给了我们html文件,我们可以通过抓包看到

这是我们的http get请求和得到下响应

把这个html直接用浏览器打开是这个样子,缺少了一些css这些样式的东西

openwrt21之后代码路径变为了如下:

feeds/luci/modules/luci-base/htdocs/luci-static/resources/network.js

feeds/luci/docs/jsapi/network.js.html

大概代码是这样子,看不懂,截取部分,用过调用ubus命令得到数据

	 */getMeshID: function() {if (this.getMode() != 'mesh')return null;return this.ubus('net', 'config', 'mesh_id') || this.get('mesh_id');},/*** Get the configured BSSID of the wireless network.** @returns {null|string}* Returns the BSSID value or `null` if none has been specified.*/getBSSID: function() {return this.ubus('net', 'config', 'bssid') || this.get('bssid');},

类似这样:ubus call iwinfo info '{ "device": "wlan0" }'

2.虚拟机给路由器开发板传文件,确保虚拟机已安装ssh

scp  + 虚拟机里面要传的文件  + 开发板用户名@开发板ip地址:开发板放文件的路劲

 scp  mongoose root@192.168.1.1:/bin

相关文章:

  • 设计模式一详解
  • MongoDB副本集环境搭建(以单机Windows为例)
  • Python从原Excel表中抽出数据存入同一文件的新的Sheet(附源码)
  • 魔改一个过游戏保护的CE
  • 亚信安全荣获2023年度5G创新应用评优活动两项大奖
  • 深入理解 JavaScript 中的变量声明:var、let 和 const
  • QT 最近使用的项目配置文件
  • 数据结构——优先级队列及多服务台模拟系统的实现
  • 【面试专题】MySQL
  • 网络基础二补充——json与http协议
  • 网络编程的学习1
  • 火车头通过关键词采集文章的原理
  • Linux中断管理:(一)中断号的映射
  • JavaScript高级 —— 学习(四)
  • 「MySQL」索引事务
  • 【Leetcode】101. 对称二叉树
  • JavaScript-如何实现克隆(clone)函数
  • 【391天】每日项目总结系列128(2018.03.03)
  • Docker下部署自己的LNMP工作环境
  • ES2017异步函数现已正式可用
  • go语言学习初探(一)
  • GraphQL学习过程应该是这样的
  • Java编程基础24——递归练习
  • Java基本数据类型之Number
  • nodejs:开发并发布一个nodejs包
  • PAT A1092
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • swift基础之_对象 实例方法 对象方法。
  • windows-nginx-https-本地配置
  • 爱情 北京女病人
  • 高度不固定时垂直居中
  • 前端js -- this指向总结。
  • 前端面试题总结
  • 无服务器化是企业 IT 架构的未来吗?
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #define用法
  • $.proxy和$.extend
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4)STL算法之比较
  • (多级缓存)缓存同步
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转载)hibernate缓存
  • ./和../以及/和~之间的区别
  • .gitignore文件_Git:.gitignore
  • .htaccess配置重写url引擎
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET DataGridView数据绑定说明
  • .NET Project Open Day(2011.11.13)
  • .net web项目 调用webService
  • .net打印*三角形