标题: [文本处理] 清除文本里面除指定内容以外的内容的批处理(有图) [打印本页]
作者: 骚鸡 时间: 2009-7-27 19:09 标题: 清除文本里面除指定内容以外的内容的批处理(有图)
我要写一个自动清除ARP缓存表的程序,.
因为内网经常遭到ARP攻击,很是郁闷...
思路如下:
先用ARP -S帮定网关的IP与MAC地址,
然后输出当前的ARP缓存表内容到文本文件,
然后用ARP -D 删除 除了我自己手工帮定的网关的IP与MAC地址以外的内容
(就是说ARP缓存表里面只保留我自己设置内容)
然后用FOR循环监视ARP缓存表内容是否有多的,有则删除
我当前的ARP缓存表的内容如图(见附件):
用ARP -A >1.TXT 把ARP缓存表输出到1.TXT,得到的TXT文件内容如下:
Interface: 192.168.1.199 --- 0x2
Internet Address Physical Address Type
192.168.1.1 00-0a-eb-e7-25-a8 dynamic
192.168.1.101 00-0a-cb-e7-25-a8 static
192.168.1.104 0b-0a-eb-e7-2b-a8 static
192.168.1.111 d8-0a-d0-e7-25-a0 static
192.168.1.115 00-eb-eb-d6-b5-c8 static
我当前的网关IP和MAC:
192.168.1.1 00-0a-eb-e7-25-a8
难点在于我不知道怎么去删除多余的内容,只保留我的网关192.168.1.1 00-0a-eb-e7-25-a8 这一条...
希望高手解答一下,先谢谢了~!
[ 本帖最后由 骚鸡 于 2009-7-28 08:46 编辑 ]
作者: Batcher 时间: 2009-7-28 08:55
先删除APR缓存,再绑定,不是更方便吗?
作者: Lumiere 时间: 2009-7-28 09:59 标题: 回复 1楼 的帖子
管理员说的很对,那样简单多了,当然你一定要我行我素的话,以下代码运行一下看看吧。- @echo off@setlocal enabledelayedexpansion
- for /f "tokens=1-2" %%a in ('arp -a^|findstr /i ".*-.*-.*-.*-.*"') do arp -s %%a %%b&goto next
- :next
- for /f "skip=1 tokens=1-2" %%m in ('arp -a^|findstr /i ".*-.*-.*-.*-.*"') do arp -d %%m %%n
- pause
复制代码
作者: 骚鸡 时间: 2009-7-28 10:03 标题: 回复 2楼 的帖子
首先感谢大家的关注,感谢管理员的回复~!
问题是:
ARP缓存是可以删除,也可以帮定...问题是别人也可以删除和帮定
(比如病毒什么的)
作者: 骚鸡 时间: 2009-7-28 10:21 标题: 回复 3楼 的帖子
感谢Lumiere朋友:
用了你的代码清除不了其他IP和MAC....
具体效果如下:
ARP: bad argument: 00-0a-cb-e7-25-a8
ARP: bad argument: 0b-0a-eb-e7-2b-a8
ARP: bad argument: d8-0a-d0-e7-25-a0
ARP: bad argument: 00-eb-eb-d6-b5-c8
请按任意键继续. . .
作者: Batcher 时间: 2009-7-28 10:23 标题: 回复 4楼 的帖子
你的意思是按照你顶楼的思路来实现,别人就不能删除了?
作者: 骚鸡 时间: 2009-7-28 10:34 标题: 回复 6楼 的帖子
不是这意思,可能是我顶楼的思路有问题吧~!(表达能力不强,不好意思啊~)
我的意思是随时检测网关的IP和MAC有没有变动,有变动就立即清楚ARP缓存表,然后再马上帮定网关的IP和MAC....
作者: keen 时间: 2009-7-28 11:23 标题: 回复 7楼 的帖子
那你的意思还要有个监视程序,批处理写监视程序很不理想。
可以考虑用VBS写监视程序。
作者: Lumiere 时间: 2009-7-29 08:59 标题: 回复 5楼 的帖子
没有吧,我在我机器上运行就没问题啊。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |