SSH 到远程主机(edgemarc 4200 或 4500 系列路由器)并提取 arp 数据

SSH 到远程主机(edgemarc 4200 或 4500 系列路由器)并提取 arp 数据

几天来我一直在想办法做到这一点,但还没有想出任何办法。理想情况下,这就是我想要做的:

在 Windows XP 机器上,我需要打开到远程主机的 SSH 连接,发送 arp 命令,并将命令的文本结果拉回以供客户端使用。我需要解析这些数据,最好生成一个 2D IP 和 MAC 地址数组。没有共享密钥,这一切都是通过始终不同的用户名和密码完成的,需要将它们通过变量输入到命令中,这些变量将使用基于远程主机的 WAN IP 的自动脚本从数据库中提取。

现在,如果我能获得 arp 表的文本,那么实际解析数据和创建数组将很容易。有没有办法通过 ssh 连接到远程主机,运行命令,然后以批处理脚本或 perl 脚本的形式将该命令中的数据返回给客户端(如果它将文本写入文件,我可以稍后从文件中读取它,我只需要它到达客户端)?

答案1

使用PuTTY plink

plink <server> arp

如果这不起作用:

echo arp | plink <server>

如果系统运行的是 Linux,并且该ip命令可用,请使用它。格式更容易解析:

plink <server> /sbin/ip -o -f inet neigh

plink <server> /sbin/ip -o -f inet6 neigh

答案2

使用 PuTTY,您可以按如下方式指定用户名和密码:

  • putty -pw 密码 用户名@主机名

此外,“-m”命令行开关还允许您指定一个文本文件,以便在连接后读取命令并在服务器上执行。

您可以从这里下载PuTTY:

  PuTTY(免费、开源)
  http://www.chiark.greenend.org.uk/~sgtatham/putty/

相关内容