openwrt做主路由_开发三问

openwrt做主路由_开发三问一、CBI语法CBI去修改UCI配置文件的值,CBI是通过web控件选择值去修改UCI文件。,所有的CBI文件都必须返回一个luci.cbi.Map类型的对象。–translate()是因为字符串中有空格,如果没有空格就不用使用该函数m=Map(“cbi_file”,translate(“FirstTabForm”),translate(“Pleasefilloutthefo

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

OpenWRT版本:17
 

一、CBI语法

CBI去修改UCI配置文件的值,CBI是通过web控件选择值去修改UCI文件。,所有的CBI文件都必须返回一个luci.cbi.Map类型的对象。

--translate()是因为字符串中有空格,如果没有空格就不用使用该函数
m = Map("cbi_file", translate("First Tab Form"), translate("Please fill out the form below")) -- cbi_file是要修改的UCI配置文件
d = m:section(TypedSection, "info", "Part A of the form")  -- 修改'info'类型选项
a = d:option(Value, "name", "Name");  --创建一个标准的文本框,该文本框中的值会对应修改info类型下的name选项的值。
a.optional=false;    --该选项不是可选值
a.rmempty = false;  -- 当用户输入一个空值时从配置文件中移除该选项
return m 			

Jetbrains全家桶1年46,售后保障稳定

config 'info' 'A'  --代表一类选项 , 'A'是description(说明)
	option 'name' 'OpenWRT'  --name是参数,OpenWRT是参数值

这里写图片描述

二、例子


m = Map("network", "Network") -- 编辑/etc/config/network文件

s = m:section(TypedSection, "interface", "Interfaces") -- 指定"interface"类型章节
s.addremove = true -- 允许用户创建和移除interfaces章节
function s:filter(value)
   return value ~= "loopback" and value -- 过滤掉loopback
end 
s:depends("proto", "static") -- 仅显示proto参数值为static和dhcp的章节
s:depends("proto", "dhcp")

p = s:option(ListValue, "proto", "Protocol") -- 创建一个下拉列表,用于修改proto参数值
p:value("static", "static") -- 添加列表值
p:value("dhcp", "DHCP")
p.default = "static"    --列表默认值

s:option(Value, "ifname", "interface", "the physical interface to be used") -- 文本框,用于修改ifname参数值

s:option(Value, "ipaddr", translate("IP Address"))  -- 文本框,用于修改ipaddr参数

s:option(Value, "netmask", "Netmask"):depends("proto", "static") -- 文本框,用于修改netmask参数,依赖于proto=static

mtu = s:option(Value, "mtu", "MTU")
mtu.optional = true -- 该选项是可选的,

dns = s:option(Value, "dns", "DNS-Server")
dns:depends("proto", "static") --依赖于proto=static 
dns.optional = true  -- 该选项是可选的
function dns:validate(value) -- 验证值的合法性
    return value:match("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") --  匹配正则表达式
end

gw = s:option(Value, "gateway", "Gateway") --文本框,用于修改网关。依赖于proto=static
gw:depends("proto", "static")
gw.rmempty = true -- 如果为空则移除它

return m

network文件

# 1 和 4是被过滤的,只留下了2和3
config interface 'loopback'  #1 loopback被过滤了
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fdb4:3b78:9c20::/48'

config interface 'lan'   #2
	option type 'bridge'
	option ifname 'eth0.1'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config device 'lan_dev'
	option name 'eth0.1'
	option macaddr '7a:25:44:7f:3c:d4'

config interface 'wan'  #3
	option ifname 'eth0.2'
	option proto 'dhcp'

config device 'wan_dev'
	option name 'eth0.2'
	option macaddr '7a:25:44:7f:3c:d5'

config interface 'wan6'  #4 因proto=dhcpv6所以被过滤
	option ifname 'eth0.2'
	option proto 'dhcpv6'  

config switch
	option name 'rt305x'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'rt305x'
	option vlan '1'
	option ports '0 1 2 3 6t'

config switch_vlan
	option device 'rt305x'
	option vlan '2'
	option ports '4 6t'


这里写图片描述
这里写图片描述
这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223425.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu安装pycharm快捷图标_pycharm快捷方式找不到了

    ubuntu安装pycharm快捷图标_pycharm快捷方式找不到了1、首先下载pycharm安装包,从官网下载,选择专业版。2、解压到一个文件夹,打开bin文件夹,命令行下运行pycharm.sh文件。sh./pycharm.sh3、然后出现安装过程,一步一步走下去就行,如果中间问是否需要加载以前的设置(如果以前安装过),可以加也可以不加。4、激活码选择企业版,可以输入:http://idea.imsxm.com/5、完成安装。但是这样每次打开pycharm,需

    2022年8月26日
    6
  • arduino连接lcd1602使用方法_arduino液晶显示屏

    arduino连接lcd1602使用方法_arduino液晶显示屏一硬件1602液晶显示,显示容量为16×2个字符,如下图一共有16个引脚,对应功能如下表:1602液晶显示各引脚功能 引脚符号 功能描述 VSS 电源地 VDD 电源正极,本实验接5V VO 液晶显示偏压,本实验接旋转电位器中间端口,调整对比度 RS 指令/数据选择引脚,低电平时,选择指令寄存器,进行指令操作;高电平时,选择数据寄存器,进行数据操作(本实验接数字引脚) RW 读/写选择引脚…

    2022年9月16日
    4
  • 大数据数据建模[通俗易懂]

    大数据数据建模[通俗易懂]今天给大家分享一下 数据开发工作中数据建模的步骤,                           第一步:选择模型或者自定义模型这第一步需要我们基于业务问题,来决定我们需要选择哪种模型,目前市场中有很多模型可以供我们选择,比如,如果要预测产品销量,则可以选择数值预测模型(比如回归模型,时序预测……);如果要预测员工是否离职,则可…

    2022年5月3日
    99
  • Java开发面试常见问题总结

    最近需要面试Java开发,自己学习丢西瓜捡芝麻,学了的都忘了,所以有机会自己做个总结,摘录自各个博文以及总结。1、JAVA的跨平台原理JVA源码被编译会生成字节码文件,通过不同平台上下载的不同版本的JVM,将字节码文件翻译成对应的机器码。注意的是,跨平台的Java程序,不是JVM。JVM是使用C/C++开发的,是编译后的字节码,不能跨平台。2、JAVA中的数据类型及其各自的特点。…

    2022年4月6日
    248
  • QQ在线客服代码

    QQ在线客服代码展开收缩QQ咨询在线咨询C老师D老师电话咨询0335-5051956新版调查

    2022年7月4日
    22
  • 四旋翼飞行器的飞控实现「建议收藏」

    尝试制作这个四旋翼飞控的过程,感触颇多,整理了思绪之后,把重要的点一一记下来;这个飞控是基于STM32,整合了MPU6050,即陀螺仪和重力加速计,但没有融合电子罗盘; 另外,四旋翼飞行器的运动方式请百度百科,不太复杂,具体不再赘述; 这是飞控程序的控制流程(一个执行周期):   比较重要的地方:1.i2c通信方式;

    2022年4月10日
    99

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号