前一阵子,因为寝室里要不断更换homeshare主机,改IP和MAC成了一项比较麻烦的工序,因此一直想手动编写一个一键更改IP与MAC的批处理文件,查看了诸多网上说法,发现都是抄袭来的,而且并不好用,几经研究,终于有了一点心得,写在这里,希望帮助有需要的网民们~~(注:该文仅针对固定IP类型,其他见文末,总代码见总结) 一、改IP设置 首先是更改本地连接里TCP/IP协议下的IP地址,这个问题比较容易,使用netsh interface ip命令即可完成,该命令介绍如下: ? -显示命令列表 这里我们只用到set命令 如:netsh interface ip set address "本地连接" static 172.30.40.59 255.255.0.0 172.30.3.21 1 某些机器上名称不是本地连接,而是local address一类的,只要替换上述命令中相关内容即可,IP中三项分别对应IP、掩码、网关,最后的“1”是指默认网关的跃点数,一般为“1”。 这样更改IP工作完成,如想在命令中添加更改DNS命令,见文末 二、改MAC地址 这个问题比较棘手,网上提供的方法都不可靠,看了很多人编写的软件,在改MAC的时候也出现问题,主要是XP系统MAC地址存储方法比较特别,大多数人都想到了用注册表添加的方法,MAC地址通常存储在注册表这一项里:(注:不同机器,存诸地址不同,但都在红色表示的这一项内,如果找不到,就先手动更改MAC,即设备管理器——》网络适配器——》高级——》network address或locad address,在值里面添加任意数字,然后打开注册表搜索这个数字,可以方便的找到network address这一项) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008 使用reg命令即可,这里仅用到add和delete两个命令,可如下添加: reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008 /v NetworkAddress /d 00e04d18063e /v表示新建项,名称为networkaddress,/d表示在该项下添加值,为00e04d18063e 大部分作者都只到这里就结束,殊不知这样改过后要重新启动网卡才可能应用,并且大多数作者对这一操作并没有说明,这样无疑让很多初学者遇到了难题,也让这个命令变得没有意义,其实实现这一命令并不难,微软推出了一个禁用设备的命令,名称为devcon.exe。 思路:用这个命令先将网卡禁用然后再启用,让所添加的注册项升效 微软下载地址为:http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe 这个命令很强大,我们只用其中一小部分,其他作用可下载后自己查看。cmd命令提示符下,进入devcon.exe所在目录,运行如下命令 devcon find pci\* 系统会列出机器上所有pci设备及代号,找出你的网卡名称和代号,如: PCI\VEN_10DE&DEV_0057&SUBSYS_25011565&REV_A3\3&2411E6FE&0&50:NVIDIA NETWORK BUS ENUMERATOR 然后我们便可以利用这个命令来禁用和启用网卡了,具体如下:(devcon命令内容这里略过,可通过help命令查看) devcon disable *DEV_0057* 第一行是禁用网卡,第二行是启用网卡(如用户在使用homeshare,切莫在homeshare未退出的情况下进行禁用和启用网卡操作,会假死的,cpu直接飙到100%,想关都很难) 至此MAC修改完成,如果想还原为原来的MAC地址,可新建一批处理将下列命令用第二行替换,即 reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008 /v NetworkAddress /d 00e04d18063e 替换为: reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008 /v NetworkAddress /f 其他命令可不做更改。 三、总结:将以上内容整理,写下如下代码:(@ECHO off 是为了不显示所执行的命令内容,可略去) @ECHO off 四、文末:(如非固定IP则将netsh一行用以下命令替换) 1.要将指定适配器的静态地址切换为 DHCP 地址,键入以下命令:netsh interface ip set address"本地连接" dhcp **!!缺点:该方法虽简单易懂,但执行起来速度并不快,需要看使用者电脑配置而定,其主要原因在于更改IP的命令netsh执行较慢,如有更好修改IP的方法(~我现在还没找到~,已找到,见推荐之三,如果想做个更好的批处理可参考),欢迎留言,我们一起探讨! |
http://blog.pepo.cn/page/blog/57560.html