ARP靜態綁定批處理文件腳本詳細講解

網上流傳了很多對付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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章