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