|
DOS命令批量統(tǒng)計(jì)局域網(wǎng)內(nèi)各臺(tái)電腦的IP地址和其相對(duì)應(yīng)dos命令
網(wǎng)絡(luò)管理員在日常維護(hù)局域網(wǎng)時(shí)都會(huì)收集統(tǒng)計(jì)每臺(tái)電腦的IP地址和其相對(duì)應(yīng)的MAC地址,這樣的好處是可以便捷、準(zhǔn)確的控制管理每臺(tái)電腦,發(fā)現(xiàn)某臺(tái)電腦中毒或者數(shù)據(jù)流量異常能及時(shí)排查、封網(wǎng)。
能實(shí)現(xiàn)這種功能的工具在網(wǎng)上有很多,例如:超級(jí)網(wǎng)管(SuperLANadmin)等等,喜歡的朋友可以自己搜索一下。在這里我主要談的是調(diào)用本機(jī)DOS命令來實(shí)現(xiàn)上述結(jié)果,畢竟我們不可能天天把工具帶在身邊。
地址解析協(xié)議(ARP)用于實(shí)現(xiàn)IP地址到網(wǎng)絡(luò)接口硬件地址的映射,該命令只有在安裝了 TCP/IP
協(xié)議之后才可用。當(dāng)某主機(jī)要向以太網(wǎng)中另一臺(tái)主機(jī)發(fā)送IP數(shù)據(jù)時(shí),它首先根據(jù)目的主機(jī)的IP地址在ARP高速緩存中查詢相應(yīng)的以太網(wǎng)地址,ARP高速緩存是主機(jī)維護(hù)的一個(gè)IP地址到相應(yīng)的以太網(wǎng)地址的映射表。如果查到匹配的結(jié)點(diǎn),則相應(yīng)的以太網(wǎng)地址被寫入以太網(wǎng)幀首部,數(shù)據(jù)包被加入到輸入到輸出列隊(duì)等待發(fā)送。如果查詢失敗,ARP會(huì)先保留等待發(fā)送的IP數(shù)據(jù)包,然后廣播一個(gè)詢問目的主機(jī)硬件地址的ARP報(bào)文,等收到回答后再把IP數(shù)據(jù)包發(fā)送出去。
命令如下:
運(yùn)行cmd.exe后執(zhí)行:
for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.3.%i
arp -a
回車,一只煙的功夫就會(huì)看到收集好列表。
(注意:把192.168.1 IP地址替換成你所在局域網(wǎng)的IP地址)
FOR
對(duì)一組文件逐一運(yùn)行一條命令。該命令可用在批處理文件中,也可命令提示符下直接調(diào)用。
語法:
FOR在批處理程序中的使用語法如下:
FOR %%變量 IN (集合) DO 命令 [命令參數(shù)]
FOR在命令提示符下的使用語法如下:
FOR %變量 IN (集合) DO 命令 [
參數(shù) :
%%變量或%變量
代表一個(gè)可替換的變量。FOR命令將用指定的一組文件中的每一個(gè)文本字符串來替換%%變量(或%變量),直到此命令(在命令參數(shù)中指定的)處理完所有的文件為止。
用%%變量來執(zhí)行一批處理程序中的FOR命令。用%變量來執(zhí)行命令提示符下的FOR命令。
集合
指定一個(gè)或多個(gè)要用特定命令對(duì)其進(jìn)行處理的文件或文本字符串。圓括號(hào)必須得有。
命令
指定要對(duì)一組文件中每一文件進(jìn)行處理的命令。
FOR─注解
使用關(guān)鍵字IN及DO
IN和DO并不是參數(shù),但FOR命令中要求這兩個(gè)關(guān)鍵字。如果省略了這兩個(gè)關(guān)鍵字,
則MS-DOS將顯示一錯(cuò)誤信息。
使用可替代變量
除了數(shù)字0到9之外,你可把任何字符用作變量,以避免與批處理參數(shù)%0到%9的混淆。對(duì)簡(jiǎn)單的批處理程序來說,象%%F這樣的一個(gè)單一字符就足夠了。在復(fù)雜的批處理程序中,你可把多個(gè)值用于變量以區(qū)分不同的可替換變量。然而,在同一命令行上不能嵌套(增加)多個(gè)FOR命令。
指定一組文件
集參數(shù)可代表一組文件或幾組文件。你可用通配符(*及?)來指定一文件集。下面是合法的文件集:
(*.doc)
(*.doc *.txt *.me)
(jan*.doc jan*.rpt feb*.doc feb*.rpt)
(ar??1991.* ap??1991.*)
當(dāng)你使用FOR命令時(shí),集中的第一個(gè)值將代替%%變量(或%變量),而為了處理此值MS-DOS將執(zhí)行指定的命令;此過程一直持續(xù)進(jìn)行,直到MS-DOS將對(duì)應(yīng)于集中的值(或多值)的所有文件(或多組文件)處理完畢為止。
--------------------------------------------------------------------------------
FOR─例子
假設(shè)你想用TYPE命令來顯示當(dāng)前目錄下擴(kuò)展名.DOC或.TXT的所有文件的內(nèi)容。為了做到這一點(diǎn)要使用可替代變量%F,并在命令提示符下輸下面的命令。
for %f in (*.doc *.txt) do type %f
在此例中,當(dāng)前目錄下擴(kuò)展名為.DOC或.TXT的每一個(gè)文件將代替%F變量,直到顯示出每一個(gè)文件的內(nèi)容為止。若把每一個(gè)%F都替換成%%F,則此命令可用于一批處理文件。否則,MS-DOS將忽略此變量而顯示錯(cuò)誤信息。
MS-DOS支持你想用于特定命令的開關(guān)、管道及重定向符。例如,為了把前一例的輸出送到PRN(默認(rèn)打印機(jī)口),應(yīng)輸入下面的命令:
for %f in (*.doc *.txt) do type %f > prn:
|
|
|