怎么獲取局域網內所有電腦的MAC地址
為方便局域網管理,以及預防病毒攻擊,我們經常會需要制作局域網設備MAC地址表來比對、核查。今天,學習啦小編就給大家介紹一下利用DOS命令來實現局域網所有電腦MAC地址獲取的方法。
獲取局域網內所有電腦的MAC地址的方法
一、所涉及DOS命令講解
1set ip=192.168.1
set為設置環境變量命令。
該命令將IP設置為值為“192.168.1"的參數,其中“192.168.1"為局域網網段,請根據局域網實際值修改。
2for /l %j in (1,1,10) do echo %i
for命令是DOS命令中一個功能十分強大的命令,在這里用到/L參數,功能是以一個增量數字集進行循環(start,step,end),即變量j初值start為1,每循環一次加增量step1,直到大于end10停止循環,每次循環執行do后面的命令。
該命令功能對變量進行每次加1,并用echo命令顯示在屏幕上。
3ping 192.168.1.1 -n 1 -w 1000
ping命令主要用于測試IP的連通性,-n 表示每一次ping過程發送的數據包數,-w表示每個數據包發出后等待回執的時間閥值。該命令表示對192.168.1.1的電腦進行ping測試,發1個包,回執時間超過1秒視為超時不通。如果IP地址能ping通,程序能夠從應答數據包中獲取該IP設備的mac地址,并存放到內存arp地址表中。
4arp -a 192.168.1.18
arp命令主要用于顯示或修改arp地址表。-a表示顯示某個或全部arp地址表。該命令表示顯示IP為192.168.1.18設備的mac。
5echo ssss|findstr dynamic
findstr查找字符串命令,一般用于從文件中查找含個某個字符的行,這里用到“|”(管道符),即把上一個命令的輸出作為下一個命令的輸入。該命令表示在命令“echo ssss”輸出結果中查找含有“dynamic”字符串的行。
二、具體方法
方法1:
set ip=192.168.1 && for /l %j in (1,1,254) do (ping %ip%.%j -n 1 -w 1000 ) && arp -a>1.txt
該方法適合在小IP地址范圍內獲取mac地址,因為如果范圍過大,ping命令執行的時間會比較長,會造成早前arp地址表中獲取的mac超時失效,從而無法獲取局域網內完整的mac地址表。如下圖,分別是上屬命令運行過程中的arp表內容,前、后表對比,很容易看出,部分mac地址已經丟失,而且還存在為全0的非真MAC地址。
方法2:
set ip=192.168.1 && for /l %j in (1,1,254) do ( ping %ip%.%j -n 1 -w 1000 |arp -a %ip%.%j |findstr dynamic >>2.txt )
相對方法1,該方法應該是比較完美的。在ping執行后,即時將獲取的真實mac地址保存了下來。
END
看了“怎么獲取局域網內所有電腦的MAC地址”的人還看了