寻梦网络,wangdi1900的个人空间,真诚期待与你成为朋友!

ARP静态绑定批处理文件脚本详细讲解

上一篇 / 下一篇  2007-12-28 01:38:36 / 个人分类:互联网

ARP静态绑定批处理文件脚本详细讲解

网上流传了很多对付ARP欺骗的批处理脚本,本文是对比较流行的一个脚本加以注释和讲解,希望对广大网友和网管员有用。原批处理文件如下:

@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

北大青鸟论坛,北大青鸟技术论坛,网络工程师论坛

C:
cd\
arp -d
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%
arp -s 219.239.84.254 00-0e-d7-59-7c-00
del IPAddr.txt
del ipconfig.txt
del phyaddr.txt
exit

来自:http://hi.baidu.com/%B3%A3%B4%BA%CC%D96/blog/item/cd17432ed86a5e534ec22679.html


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-02  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 241583
  • 日志数: 1576
  • 图片数: 5
  • 文件数: 27
  • 书签数: 176
  • 建立时间: 2006-08-06
  • 更新时间: 2008-11-08

RSS订阅

Open Toolbar