ForWork.Net

欢迎参观ForWork.Net,快乐工作·快乐生活!你我的快乐生活:)

上一篇: 远古多服务器节目管理器错误问题解决方法! 下一篇:批处理收集局域网网卡地址(MAC地址)

一:此批处理有缺陷,有时不能实现真正意义的双绑!

以下是引用片段:
@echo off  

::读取本机Mac地址  
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  
::读取本机ip地址  
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  
::绑定本机IP地址和MAC地址  
arp -s %IP% %Mac%  
::读取网关地址  
if exist GateIP.txt del GateIP.txt  
find "Default Gateway" ipconfig.txt >GateIP.txt  
for /f "skip=2 tokens=13" %%G in (GateIP.txt) do set GateIP=%%G  
::读取网关Mac地址  
if exist GateMac.txt del GateMac.txt  
arp -a %GateIP% >GateMac.txt  
for /f "skip=3 tokens=2" %%H in (GateMac.txt) do set GateMac=%%H  
::绑定网关Mac和IP  
arp -s %GateIP% %GateMac%  

arp -s 网关IP 网关MAC  

exit  

这个批处理要查询本机的ARP 缓存表,看里面是不是有网关的IP和MAC,有则能成功

绑定,但是没有的话就绑不定了!!!不过可以改进一下,达到双绑的目的,比如

加上arp -s 网关IP 网关MAC一行就可以了。。。

二、这个也不能实现真正意义的双绑,只能绑定本机IP和MAC

(多谢中国DOS联盟lxmxn提供)

以下是引用片段:
@echo off  
for /f "delims=: tokens=2" %%a in (’ipconfig /all^|find "Physical Address"’) do set local_mac=%%a  
for /f "delims=: tokens=2" %%a in (’ipconfig /all^|find "IP Address"’) do set local_ip=%%a  
for /f "delims=: tokens=2" %%a in (’ipconfig /all^|find "Default Gateway"’) do set gate_ip=%%a  
fo* /* %%* in (’getmac /nh /s %local_ip%’) do set gate_mac=%%a  
arp -s %local_ip% %local_mac%  
arp -s %gate_ip% %gate_mac% (这个地方有问题,改进中……)  



经测试,此批处理不能绑定网关IP和MAC,只能绑定本机IP和MAC

三、这个还不是很清楚,我要测试才行的,目前所知也能绑定本机IP和MAC

(多谢中国DOS联盟everest79提供)

以下是引用片段:
@ECHO OFF  
SETLOCAL ENABLEDELAYEDEXPANSION  
for /f "tokens=2 delims=[]=" %%i in (’nbtstat -a %COMPUTERNAME%’) do call set local=!local!%%i  
for /f "tokens=3" %%i in (’netstat -r^|find " 0.0.0.0"’) do set gm=%%i  
for /f "tokens=1,2" %%i in (’arp -a %gm%^|find /i /v "inter"’) do set gate=%%i %%j  
arp -s %gate%  
arp -s %local%  

arp -s 网关IP 网关MAC
这个批处理可以绑定网关IP和MAC,但是还是有缺陷,要依赖于本机上存在的ARP缓存!
改进方法为在最后加一个arp -s 网关IP和MAC!

四、这个是一个兄弟的博客上找到的,原理和第一个一样,只是改进了一点点!

这个P通过ping网关三次得到了网关的MAC其实以上的批都可以通过这个来搞定网关的IP和MAC,
但是如果开机的时候正在发生ARP欺骗的话 这样你绑的IP和MAC就是错的,不能上网了。。

不过这种情况很少,发过来试一下先吧!

以下是引用片段:
@echo off  

:::::::::::::清除所有的ARP缓存  
arp -d  

:::::::::::::读取本地连接配置  
ipconfig /all>ipconfig.txt  

:::::::::::::读取内网网关的IP  
for /f "tokens=13" %%I in (’find "Default Gateway" ipconfig.txt’) do set GatewayIP=%%I  

:::::::::::::PING三次内网网关  
ping %GatewayIP% -n 3  

:::::::::::::读取与网关arp缓存  
arp -a|find "%GatewayIP%">arp.txt  

:::::::::::::读取网关MAC并绑定  
for /f "tokens=1,2" %%I in (’find "%GatewayIP%" arp.txt’) do if %%I==%GatewayIP% arp -s %%I %%J  

:::::::::::::读取本机的 IP+MAC  
for /f "tokens=15" %%i in (’find "IP Address" ipconfig.txt’) do set ip=%%i  
for /f "tokens=12" %%i in (’find "Physical Address" ipconfig.txt’) do set mac=%%i  

:::::::::::::绑定本机的 IP+MAC  
arp -s %ip% %mac%  

:::::::::::::删除所有的临时文件  
del ipconfig.txt  
del arp.txt  
exit  


以上P可以配合路由上对客户机的IP和MAC进行绑定实现完全防ARP,只是单绑下面机和网关IP及MAC
没有多大用处,关于路由上面的,因为大家用的路由不一样,所以这个就不写了!
 

点击这里获取该日志的TrackBack引用地址

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于本文

您正在阅读的是:ARP防御之双绑批处理集合
Person01 发表于:2008-1-8 12:51:16
分类:技术文摘
关键词:ARP  防御  安全  网管  绑定  

最近发表

最新评论及回复

最近留言

友情链接

控制面板

Search

网站分类

文章归档

图标汇集

订阅ForWork.Net

什么是RSS订阅?查看解释
订阅到您的在线阅读器

抓虾 google reader my yahoo bloglines 鲜果 哪吒

博客作者

Person01

Copyright 2006-2008 ForWork.Net 【快乐工作·快乐生活】 Rights Reserved.  苏ICP备05070716号

Powered By Z-Blog 1.8 Walle Build 100427 Code detection by Codefense 网络支持 网服数据