(Mikrotik脚本)。如何设置编码“ /打印”我们想要的唯一列?

时间:2019-05-28 03:32:37

标签: php mikrotik

我们需要Router上的一些信息,表明我的设备已经处于活动状态。 有时我们必须ping(macaddress的设备)而不是ip,因为它是动态的。

因此,我们像导出一样创建文件,然后对其进行比较。现在,当我们只想打印特定列的文件时,就会遇到类似的麻烦

/print ip arp .......

任何人都可以帮助这些方法或任何方法吗?

/print ip arp file=someip.txt 

/print ip arp (only column we want) file=someip.txt

2 个答案:

答案 0 :(得分:1)

首先,您可以为想要的东西设置一个静态IP。如果使用DHCP,则可以使用/ip dhcp-server lease add ...添加静态租约。而且您不需要编写任何脚本。

Mikrotik也有一个API(https://wiki.mikrotik.com/wiki/Manual:API),其中有某些语言的绑定。您可以搜索 Mikrotik API

最后,一个很简单并且可能在某些情况下足以解决问题的技巧是使用您的Shell(如果使用的是unix之类的环境)对路由器进行SSH并过滤输出内容

ssh YOUR-DEVICE /ip arp print where mac-address=11:22:33:44:55:66 \
                | grep 11:22:33:44:55:66 | awk '{ print $3 }'

这将SSH到设备中,并使用mac 11:22:33:44:55:66获取设备的IP地址(第3列)。

命令的第一行是在Mikrotik上执行的,Unix环境中具有grep和awk的管道具有Shell的全部功能。

如果将SSH密钥复制到设备,则该命令不需要密码。

答案 1 :(得分:0)

我建议将参数提取到@bmiro解决方案,并将null折叠到grep

awk