於是,我先上網想搜個MAC地址掃描器,把區域網路中機器的MAC地址全掃出來,找了半天,不是試用版的,就是要註冊,要不就是個炸彈。唉,現在連個破MAC掃描工具都要收費了,像我吃慣了網路資源免費午餐的人是捨不得掏腰包的,怎麼辦呢?對著螢幕發獃,突然靈光一閃,想到了一個命令:ARP,對,利用ARP緩衝資訊,就可以得到我想要的區域網路機器的MAC地址了。呵呵,理了一下思路,動手操作,非常OK,哈哈,就連一些試用版、破解版的MAC掃描工具掃不出的有些機器的資訊ARP裡都有,太棒了。好了,不多說廢話了,現在就趕快把我的思路和操作告訴大家吧,與大家分享,也希望大家多多留言,多提些寶貴意見啊~~~
思路:用Ping 命令,先Ping 一下區域網路中的機器IP,因為我想在本地機器的ARP緩衝資訊裡得到想要的MAC地址資訊。只有Ping 過區域網路中線上機器,本地機器的ARP緩衝就會記錄下Ping 過的機器的IP與MAC地址資訊,也就是說,本地機器發出個資料包,目標機器會有一個應答,這個應答裡含有IP地址和MAC地址的資訊,這些個資訊會晢存在本地機器的ARP緩衝裡。在本地機器上,用ARP -a就可全部顯示出來了。(防火牆或者過濾包的方法也無法禁止ARP的查看,遠端電腦不返回Ping成功的訊息但會告訴本機電腦該IP地址對應的MAC地址。有些MAC掃描工具因對方防火牆的原因而無法得到對方的IP和Mac資訊。)
操作:有了這些思路,就差不多了。可我總不能一個一個的去Ping 啊,於是我就寫個批處理,批量檢測區域網路中線上的機器。例如要查看192.168.0.*這個網段中有哪些地址線上。在案頭上點滑鼠右鍵建立一個文字檔後輸入如下代碼:
FOR /L %%i IN (0,1,255) Do ping 192.168.0.%%i -n 1
arp -a -> MAC.txt
將該檔案儲存為.bat檔案,雙擊這個批次檔將自動搜尋網段中的所有IP,並且將發現出的ARP資訊都儲存到MAC.txt檔案中(arp –a ->MAC.txt 這行命令表示將ARP顯示的結果儲存到 MAC.txt的文字檔中,如果只是想Ping某一部分IP而不是所有該網段中的IP,可以將上面命令列中 IN(0,1,255) 中1,255是<指IP的範圍>改寫。注意:批處理沒有程式報錯功能,所以,IP的範圍應嚴格在1,255之間,防止機器執行批處理時發生意外^_^)。比如,我只想掃描192.168.0.10至192.168.0.200之間的IP與MAC資訊,可以這樣寫:
FOR /L %%i IN (0,10,200) Do ping 192.168.0.%%i -n 1
arp -a -> MAC.txt