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