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

2024-04-05 21:52

本文主要是介绍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

3.路由器自己可以上网,下挂设备不能上网。

分别对比了路由表,fdb表,防火墙。发现路由器表,fdb表能上网和不能上网的时候,都是一样的,只有防火墙有差异。

fdb表

路由器表

防火墙

出问题的时候这样的

正常的情况是这样的

对比发现少了这一条,目前怀疑是这里导致的下挂设备不能上网。

这篇关于openwrt开发包含路由器基本功能的web问题记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878243

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1