| 網上流傳了很多對付ARP欺騙的批處理腳本,本文是對比較流行的一個腳本加以注釋和講解,希望對廣大51CTO網友和網管員有用。原批處理文件如下: 
    
        
            | 
@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 
 |  現在以//開頭的為我的解釋 @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 字段的內容并將其字段內容寫入 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,每一個連續的數值為一個符號
 符號1:Physical
 符號2:Address.
 符號3:.
 符號4:.
 符號5:.
 符號6:.
 符號7:.
 符號8:.
 符號9:.
 符號10:.
 符號11::
 符號12:00-E0-FC-0C-A8-4F
 tokens=12 的意思現在大家該明白了吧,但是說明一點,FOR 命令中的變量在批處理中是用 %%X 表示,但是在 命令提示符 下輸入卻是用 %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的。
 下面的是綁定 網關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 正在獲取網關信息.....
 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
 本文出自:億恩科技【www.endtimedelusion.com】
 
 
		服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM] |