
幾天來我一直在想一種方法來做到這一點,但還沒有想出任何辦法。理想情況下,這就是我想要做的:
在 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/