Mikrotik ROS脚本语法入门

所属分类: 网络 / 路由器 阅读数: 1686
收藏 0 赞 0 分享

ROS也可称为是Route Operation System,意为"软件路由器".

一般认为用普通PC安装一套专用的路由器程序组成的系统称为软件路由器,PC电脑+免费的软件=专业的软件路由器

ROS 脚本 注解
四种变量
global - 定义全局变量, 可以要所有的 脚本 中调用共享
local - 定义本地变量,只能在其所要的 脚本 下调用,不能被其它 脚本 共享
loop index variables - 定义在for或foreach里的索引号变量
monitor variables - 监视变量
ROS算术操作
- 负号;相减。
! 逻辑非。
/ 相除。
. 连接。两个符串的连接,添加元素到列表
^ 异或(XOR)
~ 取反
* 相剩
& 与(AND)
&&逻辑与
+ 相加
< 小于
<<向左位移
<=小于等于
> 大于
>=大于等于
>>向右位移
| 或
||逻辑或
ROS说明书里的例子:
计算顺序
[admin@MikroTik]> :put (10+1-6*2=11-12=2+(-3)=-1)
false
[admin@MikroTik]> :put (10+1-6*2=11-12=(2+(-3)=-1))
true
逻辑非
[admin@MikroTik]> :put (!true)
false
[admin@MikroTik]> :put (!(2>3))
true
数位取反
[admin@MikroTik]> :put (~255.255.0.0)
0.0.255.255
加法
[admin@MikroTik]> :put (3ms + 5s)
00:00:05.003
[admin@MikroTik]> :put (10.0.0.15 + 0.0.10.0)
cannot add ip address to ip address
[admin@MikroTik]> :put (10.0.0.15 + 10)
10.0.0.25
减法
[admin@MikroTik]> :put (15 - 10)
5
[admin@MikroTik]> :put (10.0.0.15 - 10.0.0.3)
12
[admin@MikroTik]> :put (10.0.0.15 - 12)
10.0.0.3
[admin@MikroTik]> :put (15h - 2s)
14:59:58
乘法
[admin@MikroTik]> :put (12s * 4)
00:00:48
[admin@MikroTik]> :put (-5 * -2)
10
除法
[admin@MikroTik]> :put (10s / 3)
00:00:03.333
[admin@MikroTik]> :put (5 / 2)
2
[admin@MikroTik]> :put (0:0.10 / 3)
00:00:02
比较
[admin@MikroTik]> :put (10.0.2.3<=2.0.3.10)
false
[admin@MikroTik]> :put (100000s>27h)
true
[admin@MikroTik]> :put (60s,1d!=1m,3600s)
true
[admin@MikroTik]> :put (bridge=routing)
false
[admin@MikroTik]> :put (yes=false)
false
[admin@MikroTik]> :put (true=aye)
false
逻辑与 AND, 逻辑或 OR
[admin@MikroTik]> :put ((yes && yes) || (yes && no))
true
[admin@MikroTik]> :put ((no || no) && (no || yes))
false
数位与AND, 或OR, 异或XOR
[admin@MikroTik]> :put (10.16.0.134 & ~255.255.255.0)
0.0.0.134
位移操作
[admin@MikroTik]> :put (~((0.0.0.1 << 7) - 1))
255.255.255.128
连接操作
[admin@MikroTik]> :put (1 . 3)
13
[admin@MikroTik]> :put (1,2 . 3)
1,2,3
[admin@MikroTik]> :put (1 . 3,4)
13,4
[admin@MikroTik]> :put (1,2 . 3,4)
1,2,3,4
[admin@MikroTik]> :put ((1 . 3) + 1)
14
[admin@MikroTik]> :seta "It's "
[admin@MikroTik]> :put ($a . OK)
It's OK
ROS 脚本 保留字
beep execute global list pick time toip typeof
delay find if local put toarray tonum while
do for led log resolve tobool tostr
environment foreach len nothing set toid totime
:beep length=2s frequency=10000
产生2秒10kHz的音频
length缺省值为100ms
frequency缺省值为1000Hz
:set a "/int dis lan/n/int dis wan"
:execute $a
执行多条命令,例子里执行了两条命令。/n是换行
:global
定义全局变量
:list interface
显示相关命令。显示当前目录及子目录下有关interface的命令
:pick
取字符串或数组的某一断。字符串(数组)的第一个为0。
[admin@MikroTik]>:put [:pick "I love you" 2 6]
love
:time
执行命令所需的时间
[admin@MikroTik]> :put [:time [:resole www.sina.com.cn]]
00:00:00.006
执行解析www.sina.com.cn这个域名所需的时间
toip toarray tonum tobool tostr toid totime
转换值类型
:delay 3
延时3秒,缺省为1秒
:find
查找字符串或数组中第一个出现查找内容的位置
[admin@MikroTik]>:put [:find abcdcba cd]
2
[admin@MikroTik]>:put [:find "1,2,3,4,3,2,1" 2]
1
:put
输出到屏幕上,上面就很多例子了。
:if
条件选择
[admin@MikroTik]>:if(1<2) do={:put true}
true
如果条件为真,执行do={}里面的命令
[admin@MikroTik]>:if(1>2) do={:put true} else={:put flase}
flase
如果条件为真,执行do={}里面的命令,否则执行else={}里有命令
:local
定义本地变量
:while
条件为真时循环执行do={}里的 脚本 命令
[admin@MikroTik]>:set i 0;:while($i<5) do={:put $i;:set i ($i+1)}
0
1
2
3
4
5
:for
循环执行do={}里的 脚本 命令
:for i from=1 to=100 step=30 do={:put $i}
1
31
61
91
:foreach
在集合(数组)里循环执行do={}里的 脚本 命令
:foreach i in=[/interface find type=ether] do={:put [/interface get $i name]}
ether1
ether2
ether3
ether4
在[/interface find type=ether]的集合(类型为ether的interface ID)循环输出
interface的名称。我这时有四张网卡
:log 日志类型 日志内容
写文本到日志(script log)
类型在/system logging里可以找到
:log info "系统信息"
到LOG里查查运行结果吧
:resolve
解析域名的IP地址
[admin@MikroTik] > :put [:resolve www.sina.com.cn]
61.172.201.240
:environment print
显示所有变量及其值
:len
字符串或数组的长度
[admin@MikroTik] > :put [:len hello]
5
[admin@MikroTik] > :put [:len "1,2,23,65,54,6"]
6
:nothing
空值。nothing不等0,不等于空字符""
:find abc a的结果是0
:find abc d的结果是nothing
:set
赋值
[admin@MikroTik] > :set a test
将abc字符赋给变量a
[admin@MikroTik] > :put $a
test
[admin@MikroTik] > :put a
a
引用变量的值要在变量前面加$

更多精彩内容其他人还在看

荣耀路由Pro如何实现USB储存共享?荣耀路由Pro进行USB储存共享的方法

荣耀路由Pro即可以作为WiFi工具,也可以进行数据的传输和共享,本文中介绍的是通过这款路由使用USB存储设备传输共享文件的方法,需要的朋友不妨阅读本文进行参考
收藏 0 赞 0 分享

荣耀路由2S和小米路由器4哪个值得买 荣耀路由2S和小米路由器4区别对比

打游戏突然断网,但是明明网络本本身没问题,那十有八九就是路由器的毛病了,这是就体现了好的路由器的重要性了,作为性价比之王,小米的路由器一直受到大家的喜爱,但是荣耀也不甘落后,马上推出了好的路由器,下面小编带来荣耀路由2S和小米路由器4区别对比
收藏 0 赞 0 分享

荣耀路由Pro接口和按钮的作用?荣耀路由Pro接口和按钮功能详解

荣耀路由Pro在外观配置上拥有一个“Hi”按键和五个不同的接口,这些接口和按钮有什么样的功能呢?本文中将会有详细的介绍,需要的朋友不妨阅读本文进行参考
收藏 0 赞 0 分享

荣耀路由pro如何解除MAC地址绑定限制?荣耀路由解除MAC地址解绑定限制的方法

荣耀路由pro在使用的时候如何将绑定的Mac地址限制解除呢?本文中将会有详细的介绍,需要的朋友不妨阅读本文进行参考
收藏 0 赞 0 分享

荣耀路由Pro智联功能如何开启?荣耀路由Pro智联功能开启教程

荣耀路由Pro不仅具有提供无线网络的功能,还支持与其他智能设备联动,本文将会带来该功能的开启方法,需要的朋友不妨阅读本文进行参考
收藏 0 赞 0 分享

华为4g路由器2pc端口管理页面无法登陆怎么办?

华为4g路由器2pc端口管理页面无法登陆怎么办?华为4g路由器2进入管理页面的时候,发现无法登陆,我们需要利用手机来解决这个问题,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

荣耀路由Pro如何进行升级?荣耀路由Pro本地进行升级的方法

荣耀路由Pro进行升级到的方法可以在文本界面开启自动升级,也可以将升级包下载到本地进行升级,本文中介绍的是在本地对路由器进行升级的方法,需要的朋友不妨阅读本文进行参考
收藏 0 赞 0 分享

荣耀路由Pro如何设置Wi-Fi黑白名单?荣耀路由Pro添加Wi-Fi黑白名单的方法

荣耀路由Pro在使用的时候如何防止一些其它设备连接该网络呢?本文中将会带来详细的介绍,需要的朋友不妨阅读本文进行参考
收藏 0 赞 0 分享

荣耀路由Pro网络连接不上怎么办?荣耀路由Pro网络连接常见问题及解决方法

荣耀路由Pro在设置网络进行上网的时候要是遇到一些问题,比如界面提示“请插入网线”、“宽带帐号或密码错误”等问题时要如何的解决呢?本文中将会有详细的介绍,需要的朋友不妨阅读本文进行参考
收藏 0 赞 0 分享

荣耀路由Pro如何设置客人WiFi?荣耀路由Pro设置客人WiFi的方法

荣耀路由Pro如何为客人设置一个WiFi呢?本文中将会有详细的介绍,需要了解的朋友不妨阅读本文进行参考
收藏 0 赞 0 分享
查看更多