(Mikrotik 脚本)。如何设置我们想要的唯一列的编码“/print”?
(Mikrotik Script). How to set coding "/print" only column we want?
我们需要来自我的 Router
的一些信息,表明我的设备已经激活。
有时我们必须 ping(macaddress 的设备)而不是 ip,因为它是动态的。
所以我们像导出一样创建文件然后比较它们。现在,当我们只想打印文件的特定列时,我们遇到了这样的麻烦
/print ip arp .......
任何人都可以帮助这些或任何方法?
/print ip arp file=someip.txt
/print ip arp (only column we want) file=someip.txt
首先,也许你可以为你想要的东西设置一个静态IP。如果您使用的是 DHCP,则可以使用 /ip dhcp-server lease add ...
添加静态租约。而且您不需要编写任何脚本。
Mikrotik 也有一个 API (https://wiki.mikrotik.com/wiki/Manual:API) 有一些语言的绑定。您可以搜索 Mikrotik API .
最后一个很简单并且对某些场景来说可能足够的肮脏的 hack 是 SSH 路由器并使用你的 shell 过滤输出(如果你使用的是类似 unix 的环境)
ssh YOUR-DEVICE /ip arp print where mac-address=11:22:33:44:55:66 \
| grep 11:22:33:44:55:66 | awk '{ print }'
这将通过 ssh 进入设备并使用 mac 11:22:33:44:55:66
.
获取设备的 IP 地址(第 3 列)
命令的第一行在 Mikrotik 上执行,在您的 unix 环境中使用 grep 和 awk 的管道具有您 shell.
的所有功能
如果您将 SSH 密钥复制到设备,该命令将不需要密码。
我建议将参数提取到@bmiro 解决方案,并将 grep
折叠成 awk
macId=11:22:33:44:55:66
ssh YOUR-DEVICE /ip arp print where mac-address=${macId} | awk "/${macId}/"'{ print }'
我们需要来自我的 Router
的一些信息,表明我的设备已经激活。
有时我们必须 ping(macaddress 的设备)而不是 ip,因为它是动态的。
所以我们像导出一样创建文件然后比较它们。现在,当我们只想打印文件的特定列时,我们遇到了这样的麻烦
/print ip arp .......
任何人都可以帮助这些或任何方法?
/print ip arp file=someip.txt
/print ip arp (only column we want) file=someip.txt
首先,也许你可以为你想要的东西设置一个静态IP。如果您使用的是 DHCP,则可以使用 /ip dhcp-server lease add ...
添加静态租约。而且您不需要编写任何脚本。
Mikrotik 也有一个 API (https://wiki.mikrotik.com/wiki/Manual:API) 有一些语言的绑定。您可以搜索 Mikrotik API .
最后一个很简单并且对某些场景来说可能足够的肮脏的 hack 是 SSH 路由器并使用你的 shell 过滤输出(如果你使用的是类似 unix 的环境)
ssh YOUR-DEVICE /ip arp print where mac-address=11:22:33:44:55:66 \
| grep 11:22:33:44:55:66 | awk '{ print }'
这将通过 ssh 进入设备并使用 mac 11:22:33:44:55:66
.
命令的第一行在 Mikrotik 上执行,在您的 unix 环境中使用 grep 和 awk 的管道具有您 shell.
的所有功能如果您将 SSH 密钥复制到设备,该命令将不需要密码。
我建议将参数提取到@bmiro 解决方案,并将 grep
折叠成 awk
macId=11:22:33:44:55:66
ssh YOUR-DEVICE /ip arp print where mac-address=${macId} | awk "/${macId}/"'{ print }'