@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 |
四、原理和第一个一样,只是改进了一点点!
这个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 ::::::::::::ING三次内网网关 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
没有多大用处,关于路由上面的,因为大家用的路由不一样,所以这个就不写了