網(wǎng)上流傳了很多對付ARP欺騙的批處理腳本,本文是對比較流行的一個腳本加以注釋和講解,希望對廣大51CTO網(wǎng)友和網(wǎng)管員有用。原批處理文件如下:
@echo off
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
find "Physical Address" ipconfig.txt >phyaddr.txt
for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >IPAddr.txt
for /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I
arp -s %IP% %Mac%
del ipaddr.txt
del ipconfig.txt
del phyaddr.txt
exit
|
現(xiàn)在以//開頭的為我的解釋
@echo off
//關閉命令回顯
if exist ipconfig.txt del ipconfig.txt
//如果存在 ipconfig.txt 這個文件就對其進行刪除
ipconfig /all >ipconfig.txt
//把 ipconfig /all 命令的顯示結果寫入 ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
//如果存在 phyaddr.txt 這個文件就對其進行刪除
find "Physical Address" ipconfig.txt >phyaddr.txt
//在 ipconfig.txt 文件里查找 Physical Address 字段的內(nèi)容并將其字段內(nèi)容寫入 phyaddr.txt
for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M
//在 phyaddr.txt 文件中從第一行象下跳兩行,也就是從第三行開始,從第12個符號處取值,并把該值設置成 MAC 變量,舉個例子:Physical Address. . . . . . . . . : 00-E0-FC-0C-A8-4F,每一個連續(xù)的數(shù)值為一個符號
符號1:Physical
符號2:Address.
符號3:.
符號4:.
符號5:.
符號6:.
符號7:.
符號8:.
符號9:.
符號10:.
符號11::
符號12:00-E0-FC-0C-A8-4F
tokens=12 的意思現(xiàn)在大家該明白了吧,但是說明一點,F(xiàn)OR 命令中的變量在批處理中是用 %%X 表示,但是在 命令提示符 下輸入?yún)s是用 %X 表示的,切記
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >IPAddr.txt
for /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I
arp -s %IP% %Mac%
//以上這些對照我前面的講解很容易理解
del ipaddr.txt
del ipconfig.txt
del phyaddr.txt
exit
//這幾句還看不懂的話就未免太``````
上面的腳本是綁定本機IP和MAC的。
下面的是綁定 網(wǎng)關IP和MAC的。
@echo OFF
if %~n0==arp exit
if %~n0==Arp exit
if %~n0==ARP exit
echo 正在獲取本機信息.....
:IP
FOR /f "skip=13 tokens=15 usebackq " %%i in (`ipconfig /all`) do Set IP=%%i && GOTO MAC
:MAC
echo IP:%IP%
FOR /f "skip=13 tokens=12 usebackq " %%i in (`ipconfig /all`) do Set MAC=%%i && GOTO GateIP
:GateIP
echo MAC:%MAC%
arp -s %IP% %MAC%
echo 正在獲取網(wǎng)關信息.....
FOR /f "skip=17 tokens=13 usebackq " %%i in (`ipconfig /all`) do Set GateIP=%%i && GOTO GateMac
:GateMac
echo IP:%GateIP%
FOR /f "skip=3 tokens=2 usebackq " %%i in (`arp -a %GateIP%`) do Set GateMAC=%%i && GOTO Start
:Start
echo MAC:%GateMAC%
arp -d
arp -s %GateIP% %GateMAC%
echo 操作完成!!!
exit 本文出自:億恩科技【mszdt.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|