透過 SSH 連接到遠端主機(edgemarc 4200 或 4500 系列路由器)並提取 arp 數據

透過 SSH 連接到遠端主機(edgemarc 4200 或 4500 系列路由器)並提取 arp 數據

幾天來我一直在想一種方法來做到這一點,但還沒有想出任何辦法。理想情況下,這就是我想要做的:

在 Windows XP 電腦上,我需要打開到遠端主機的 SSH 連接,發送 arp 命令,並將命令的文字結果拉回以在客戶端上使用。我需要解析這些數據,最好產生 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/

相關內容