找回密码
 加入会员
搜索
查看: 6874|回复: 1

[电脑资讯] 【反】限制别人网速软件的命令行(转)

[复制链接]

217

主题

992

回帖

1689

积分

清职生活

噯伱①澫哖,吥過妗天媞①澫哖茤 ...

发表于 2008-4-4 19:50 | 显示全部楼层 |阅读模式
为了预防 ARP 病毒的攻击,一般都建议 Windows 用户把本机和网关实现 IP 与物理地址的绑定。
    Windows 下的绑定命令格式为: ARP -s [IP地址] [MAC地址]
    尽管命令很简单,但是对于初级用户仍然是一件困难的事情,特别是还要通过运行 ipconfig.exe、ping、arp -a 等命令获取网关和本机的 MAC 地址就更是一件难事。即使是有经验的网管,敲这些命令,再获取数据,再完成绑定,也是一件单调乏味的事情。为了简化操作、提高效率,有必要发挥程序的作用,写一段代码来完成这项工作。那些 VC++、Delphi、C# 之流的大型编程自然能完成编程任务,但是总给人大动干戈的味道。其实,充分发挥 DOS 批处理的威力,只用写一些“脚本”就可以完成这些事情了。
    只要把以下代码保存成一个扩展名为 .bat 的批处理文件,需要的时候用鼠标双击一下,一切事情就全部搞定了。
    程序的流程如下:
    带参数 /all 运行 ipconfig.exe 程序,运行结果保存到生成的 ipconfig.txt 文本文件里。
    运行 find.exe 程序,在 ipconfig.txt 文件里搜索字符串 "Physical Address"。find.exe 程序的运行结果,保存到生成的文本文件 phyaddr.txt 里。在我的机器上,phyaddr.txt 内容为(实际文件没有行号):
    1,
    2,---------- IPCONFIG.TXT
    3,   Physical Address. . . . . . . . . : 00-00-E2-89-9E-BD
    4,
    语句 for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M 是取得本地物理 MAC 地址的语句,结果临时保存在 %Mac% 变量里。“for ...”语句的意思是,phyaddr.txt 文件的内容,跳过前面 2 行,余下的行取第 12 列,每列之间的分隔符为默认的"空格"。注意本行的列包括单词和所有的“.”字母。这样 Mac=00-00-E2-89-9E-BD,就是本机网卡的物理地址了。
    下面取本机 IP 地址的道理也类似。绑定命令是 arp -s %IP% %Mac%。
    再后面获取网关的 MAC 和 IP 地址的方法也与前边类似。注意运行一次 ping %GateIP% -n 1 命令,是为了取得网关 Arp 信息在本机的缓存,确保 arp -a %GateIP% 命令能取得网关的信息,否则只能得到文本:No ARP Entries Found。
    然后生成 GateMac.txt 文件,从中取到网关的 MAC 地址。最终网关也获得了 arp 绑定。
    注意以冒号“:”开头的语句是批处理文件的注释语句。批处理脚本的语句(例如 for 语句)的更多信息,请在网上搜索相关资料。
    从这里可以看到,DOS 命令行程序,包括批处理文件,并不是作为摆设存在的,更没有过时,合理利用,作用还是非常大的。譬如 NET、NETSH、NETASAT 等等命令,在网管工作中都是经常用到的,可以完成几乎所有图形界面程序能完成的工作,但有时更方便一些。
    附:
    @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
    ping %GateIP% -n 1
    :::读取网关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%
    :::删除临时文件
    del GateIP.txt
    del GateMac.txt
    del IPAddr.txt
    del ipconfig.txt
    del phyaddr.txt
    :::测试绑定结果
    arp -a
    :::exit

[ 本帖最后由 ebbing 于 2008-4-8 22:51 编辑 ]
ス我¨想爱ш♀你一万¨к〓年く,可惜今Зㄤ、ン天┓ャャ『∪已是ヶ一万○零一天

4

主题

159

回帖

143

积分

入住清职

发表于 2008-4-4 23:52 | 显示全部楼层
标题党

这篇文章原来的题目是:“DOS 批处理快速实现 arp 绑定”

不过,正文还是不错的,特别对于用网通的同学来说,是比较有用的

预防ARP病毒
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

Archiver|手机版|小黑屋|清职在线BBS站 ( 粤R:000003 )

GMT+8, 2025-8-31 07:35 , Processed in 0.078525 second(s), 21 queries .

Powered by Discuz! X3.5

© 2006-2025 QYPT.COM

快速回复 返回顶部 返回列表