
由於我們(前!:-)網路經理的記錄保存不嚴,我的任務是查找我們公司中存在的 QNAP 和 Synology NAS 設備。我們在英國各地設有數百個辦事處,它們都是獨立的網路和獨立的網域。它們都是基於 Windows 的(Server 2k3、2008 和 2012 的混合)。我們運行自己自製的監控軟體,使我可以遠端運行任何我想要的軟體。
QNAP 和 Synologies 具有獨特的 MAC 位址,因此如果我可以掃描網路中的 MAC 位址並將輸出傳輸到文件,我就可以輕鬆獲得所需的資訊。問題是如何取得 LAN 上所有 MAC 位址的清單。
顯而易見的第一步就是運行arp-a,無論如何我可能都會繼續這樣做。然而,這只會顯示伺服器在 arp 快取逾時內看到的裝置。有誰知道一個簡單的方法來獲得全部裝置?我所說的簡單是指 Windows 中內建的東西 - 我不想安裝任何軟體,因為我們正在談論數百個不同的辦公室。在這些場合往往會提到 nmap,但 Windows 連接埠似乎需要安裝額外的庫。如果我必須使用外部掃描儀,那麼最好有一個可以複製到伺服器上並運行的可執行檔。
附:快速澄清:
掃描器需要是一個命令列應用程序,這樣我就可以遠端啟動它並將輸出發送到文件以進行後續解析。它不能依賴 Java,因為不能保證所有伺服器都有 Java。我相當確定所有伺服器至少都會有.Net 2.0 - 我想在緊要關頭我可以啟動一個快速的.Net 2.0 應用程式來ping 網路上的每個可能的位址並獲取與任何回應關聯的MAC 位址... …
答案1
最快捷/最簡單的方法通常是從交換器獲取 arp 表(假設您有託管交換機,否則,請準備好承受很多痛苦)並根據分配給網卡製造商的 MAC 位址過濾它們) 您正在尋找。 我傾向於使用這個網站將 MAC 與供應商連接起來,反之亦然,但肯定還有其他的。
如果您的交換器不受管理,因此您無法輕鬆地從中央位置提取 arp 表,那麼下一個最佳方法是在可以從中進行廣播的每個網段上找到一台計算機,然後查找本地 arp 表。這……遠非理想,但確實是許多糟糕選擇中的最佳解決方案。就像您在問題中似乎建議的那樣,而不是對所有這些計算機進行互動式登錄,我會使用某種方法來獲取遠端命令列從中央位置,例如您的工作站。 WinRM、PowerShell 遠端處理甚至 PSexec 都是實現此目標的相對簡單的選項,它們可能適合也可能不適合您,具體取決於您的環境設定方式。
哦,讓我補充一下,與其對每個地址進行 ping 操作,或者編寫一個應用程式來執行此操作,不如直接點擊每個子網路的廣播位址或全域廣播位址,如果這是您最終要走的路線。 (廣播位址是最後一個八位元組中的位址.255
,全域廣播位址是255.255.255.255
。)
答案2
你有沒有嘗試過Angry IP Scanner
?
我似乎記得這是一個單一的可執行檔。
我之前在 Linux 上使用過 Fing,它可以在命令列上運行並輸出到命令列。
答案3
如果您可以預測地找到已安裝的捲,則可以識別 IP 位址,然後追蹤它是否是錯誤的裝置之一。您將需要net use
在本機執行命令,或查看註冊表中的任何持久性對應磁碟機。
然後,透過探測名稱本身以獲取信息,或嘗試從伺服器執行 ping 操作,都會返回 MAC 位址。