我们需要Router
上的一些信息,表明我的设备已经处于活动状态。
有时我们必须ping(macaddress的设备)而不是ip,因为它是动态的。
因此,我们像导出一样创建文件,然后对其进行比较。现在,当我们只想打印特定列的文件时,就会遇到类似的麻烦
/print ip arp .......
任何人都可以帮助这些方法或任何方法吗?
/print ip arp file=someip.txt
/print ip arp (only column we want) file=someip.txt
答案 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