![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 04:50 |
共 48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [讨论]传四个关于ARP防护的BAT |
| 可打印版本 746 / 0 |
| 第1楼 714825106 | 发表于 2008-01-09 19:53 |
| 新手上路 发帖 6 积分 17 来自 河南 | |
|
[讨论]传四个关于ARP防护的BAT 这几个BAT是前几天学校机器中了ARP病毒,上不了网~我请教一位朋友做出来的~~效果不怎么好~但是还有点作用~呵呵~再你装ARP防火墙之前~(传上来供大家分享下~虽然我对BAT也不是太熟,有不足希望各位高手给补充下)
第一个~ ㈠把下面语句编成BAT处理文件就可以搞定 @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一行就可以了。。。 第二个 ㈡@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 第三个 @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 ::::::::::::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 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |