|
一:此批处理有缺陷,有时不能实现真正意义的双绑!
@echooff
::读取本机Mac地址 ifexistipconfig.txtdelipconfig.txt ipconfig/all>ipconfig.txt ifexistphyaddr.txtdelphyaddr.txt find"PhysicalAddress"ipconfig.txt>phyaddr.txt for/f"skip=2tokens=12"%%Min(phyaddr.txt)dosetMac=%%M ::读取本机ip地址 ifexistIPAddr.txtdelIPaddr.txt find"IPAddress"ipconfig.txt>IPAddr.txt for/f"skip=2tokens=15"%%Iin(IPAddr.txt)dosetIP=%%I ::绑定本机IP地址和MAC地址 arp-s%IP%%Mac% ::读取网关地址 ifexistGateIP.txtdelGateIP.txt find"DefaultGateway"ipconfig.txt>GateIP.txt for/f"skip=2tokens=13"%%Gin(GateIP.txt)dosetGateIP=%%G ::读取网关Mac地址 ifexistGateMac.txtdelGateMac.txt arp-a%GateIP%>GateMac.txt for/f"skip=3tokens=2"%%Hin(GateMac.txt)dosetGateMac=%%H ::绑定网关Mac和IP arp-s%GateIP%%GateMac%
arp-s网关IP网关MAC
exit
这个批处理要查询本机的ARP缓存表,看里面是不是有网关的IP和MAC,有则能成功
绑定,但是没有的话就绑不定了!!!不过可以改进一下,达到双绑的目的,比如
加上arp-s网关IP网关MAC一行就可以了。。。
二、这个也不能实现真正意义的双绑,只能绑定本机IP和MAC
(多谢中国DOS联盟lxmxn提供)
@echooff for/f"delims=:tokens=2"%%ain('ipconfig/all^|find"PhysicalAddress"')dosetlocal_mac=%%a for/f"delims=:tokens=2"%%ain('ipconfig/all^|find"IPAddress"')dosetlocal_ip=%%a for/f"delims=:tokens=2"%%ain('ipconfig/all^|find"DefaultGateway"')dosetgate_ip=%%a fo*/*%%*in('getmac/nh/s%local_ip%')dosetgate_mac=%%a arp-s%local_ip%%local_mac% arp-s%gate_ip%%gate_mac%(这个地方有问题,改进中……)
经测试,此批处理不能绑定网关IP和MAC,只能绑定本机IP和MAC
三、这个还不是很清楚,我要测试才行的,目前所知也能绑定本机IP和MAC
(多谢中国DOS联盟everest79提供)
@ECHOOFF SETLOCALENABLEDELAYEDEXPANSION for/f"tokens=2delims=[]="%%iin('nbtstat-a%COMPUTERNAME%')docallsetlocal=!local!%%i for/f"tokens=3"%%iin('netstat-r^|find"0.0.0.0"')dosetgm=%%i for/f"tokens=1,2"%%iin('arp-a%gm%^|find/i/v"inter"')dosetgate=%%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就是错的,不能上网了。。
不过这种情况很少,发过来试一下先吧!
@echooff
:::::::::::::清除所有的ARP缓存 arp-d
:::::::::::::读取本地连接配置 ipconfig/all>ipconfig.txt
:::::::::::::读取内网网关的IP for/f"tokens=13"%%Iin('find"DefaultGateway"ipconfig.txt')dosetGatewayIP=%%I
:::::::::::::PING三次内网网关 ping%GatewayIP%-n3
:::::::::::::读取与网关arp缓存 arp-a|find"%GatewayIP%">arp.txt
:::::::::::::读取网关MAC并绑定 for/f"tokens=1,2"%%Iin('find"%GatewayIP%"arp.txt')doif%%I==%GatewayIP%arp-s%%I%%J
:::::::::::::读取本机的IP+MAC for/f"tokens=15"%%iin('find"IPAddress"ipconfig.txt')dosetip=%%i for/f"tokens=12"%%iin('find"PhysicalAddress"ipconfig.txt')dosetmac=%%i
:::::::::::::绑定本机的IP+MAC arp-s%ip%%mac%
:::::::::::::删除所有的临时文件 delipconfig.txt delarp.txt exit
以上P可以配合路由上对客户机的IP和MAC进行绑定实现完全防ARP,只是单绑下面机和网关IP及MAC 没有多大用处,关于路由上面的,因为大家用的路由不一样,所以这个就不写了!
|