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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 级联分类器原理(级联器是什么)

    级联分类器即为Emgucv中的CascadeClassifier。使用CascadeClassifier来加载一个.xml分类器文件,然后使用DetectMultiScale函数来对图片进行检测。这是DetectMultiScale函数。publicRectangle[]DetectMultiScale(IInputArrayimage,doublescaleFactor=1.

    2022年4月10日
    287
  • Java学习路线图[通俗易懂]

    Java学习路线图[通俗易懂]一、Java学习路线图   二、Java学习路线图——视频篇 六大阶段学完后目标知识点配套免费资源(视频+笔记+源码+模板)密码     第一阶段Java基础 入门学习周期:35天学完后目标:1.可进行小型应用程序开

    2022年5月13日
    61
  • GROUP BY和HAVING用法介绍

    GROUP BY和HAVING用法介绍一、groupby和having1、满足“SELECT子句中的列名必须为分组列或列函数”,因为SELECT有groupby中包含的列2、having必须和groupby一起用,且在groupby后面3、groupby、having、orderby的使用顺序:groupby、having、orderbySELECT*|字段列表[as别名]FROM表名[WHERE子句][GROUPBY子句][HAVING子句][ORDERBY子句][LIMIT…

    2022年6月18日
    21
  • JS截取字符串方法实例

    JS截取字符串方法实例

    2021年11月3日
    37
  • pca算法matlab代码(单因素方差分析原理)

    PCA主成分分析原理分析和Matlab实现方法(三)PCA算法主要用于降维,就是将样本数据从高维空间投影到低维空间中,并尽可能的在低维空间中表示原始数据。PCA的几何意义可简单解释为:0维-PCA:将所有样本信息都投影到一个点,因此无法反应样本之间的差异;要想用一个点来尽可能的表示所有样本数据,则这个点必定是样本的均值。1维-PCA:相当于将所有样本信息向样本均值的直线投影;2维-PCA:将样本的平面分布看作椭圆形分布,求出椭圆形的长短轴方向,然后将样本信息投

    2022年4月15日
    53
  • 博客园博客美化相关文章目录

    博客园博客美化相关文章目录

    2021年9月4日
    63

发表回复

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

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