做一个自动修改本机IP和mac的bat文件

简介: 原文: 做一个自动修改本机IP和mac的bat文件 1、ip bat修改理论探讨       前两天我突然萌生了一个念头:能不能做一个小程序来实现自动配置或修改IP和mac,达到一键搞定的目的,这样尤其适合那些带着笔记本到处跑的商务人员,于是我首先想到了bat处理。
原文: 做一个自动修改本机IP和mac的bat文件

1、ip bat修改理论探讨

      前两天我突然萌生了一个念头:能不能做一个小程序来实现自动配置或修改IP和mac,达到一键搞定的目的,这样尤其适合那些带着笔记本到处跑的商务人员,于是我首先想到了bat处理。

      查阅资料后发现修改iP有现成的命令,但是修改mac相对麻烦一些,需要智能地修改注册表。

修改ip命令如下:

netsh interface ip set address name="本地连接" source=static addr=202.200.155.129 mask=255.255.255.0
netsh interface ip set address name="本地连接" gateway=202.200.155.254 gwmetric=1
netsh interface ip set dns name="本地连接" source=static addr=202.200.144.2 register=PRIMARY
netsh interface ip add dns name="本地连接" addr=61.163.1.4 index=2
netsh interface ip set wins name="本地连接" source=static addr=none

将以上代码相关ip配置修改为你自己的配置,保存到记事本文件,后缀名改为bat,运行即可。

注意:本地连接”必须与你的本地连接名称相同,gwmetric=1必须有,否则有语法错误。

自动获取IP命令如下:

netsh interface ip set address name="本地连接" source=dhcp
netsh interface ip set dns name="本地连接" source=dhcp

同样保存为bat文件,即可运行设置。

      然而,以上方法还不够完美,当不同用户使用这段代码时,用户需要亲自修改这些代码来配置自己的IP,所以我们考虑:能不能把IP的相关配置保存的一个文件里边,然后由bat代码解释执行呢?这样的话,用户只需要修改ip配置文件,bat程序文件便可自动解释执行。答案是肯定的,我们可以这样实现:

      运行windows cmd命令,输入下命令即可将你现在的IP配置保存到文件里边:

netsh -c interface dump > c:/myipconfig/ip1.txt

改命令自动将你现有的ip配置保存到 c:/myipconfig/ip1.txt,此时你可以打开查看其。注意:‘>’为输入文件符号

      然后,我们可以通过命令:netsh -f c:/myipconfig/ip1.txt 将ip1.txt保存的ip配置设置到本机。

2、mac bat 修改理论探讨

     到目前为止,有很多人坚信mac地址不可能被修改,他们认为mac是全球唯一的地址,修改了岂不是乱套了吗?而且硬件厂商也不容许你修改的,这里我要做出解释:在windows平台上,所谓的mac地址在通信时某台机子的mac地址是多少是由windows说了算的,windows在通信时是在在注册表里边查找本机的mac地址的。所以我们所谓的修改mac地址也只是在注册表中修改,没有对网卡进行实际的修改,当你将mac设置为disable的时候,mac就自动回到了网卡的mac了。顺便说一句,我们为什么要修改mac呢?是因为有些上网账号和mac绑定到了一起,在该账号下只认初始化的那个mac。另外,再说一个奇怪的现象,在同一个集线器/交换机下,将所有机器IP地址,mac修改成一样,照样可以上网,我不清楚这是windows的一个bug,还是它的一个功能。

    言归正传,我们如何做bat能够在注册表中修改mac呢?通过网上查阅资料其理论方法如下:

Windows2000/XP 的修改
 1)在 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002BE10318}/0000 、 0001 、 0002 等主键下,查找 DriverDesc ,内容为你要修改的网卡的描述,如“ Realtek RTL8029(AS)-based PCI Ethernet Adapter ”。
 2)如果在0001下找到了1中的DriverDesc ,在其下,添加一个字符串,命名为 NetworkAddress ,其值设为你要的 MAC 地址(注意地址还是连续写)。如: 00E0DDE0E0E0 。
 3)然后到其下 Ndi/params 中添加一项名为 NetworkAddress 的主键,在该主键下添加名为 default 的字符串,其值是你要设的 MAC 地址,要连续写,如: 000000000000 。(实际上这只是设置在后面提到的高级属性中的“初始值”,实际使用的 MAC 地址还是取决于在第 2 点中提到的 NetworkAddress 参数,这个参数一旦设置后,以后高级属性中的值就是 NetworkAddress 给出的值而非 default 给出的了。)
 4)在 NetworkAddress 的主键下继续添加名为 ParamDesc 的字符串,其作用为指定 NetworkAddress 主键的描述,其值可自己命名,如“ Network Address ”,这样在网卡的高级属性中就会出现 Network Address 选项,就是你刚在注册表中加的新项 NetworkAddress ,以后只要在此修改 MAC 地址就可以了。继续添加名为 Optional 的字符串,其值设为“ 1 ”,则以后当你在网卡的高级属性中选择 Network Address 项时,右边会出现“不存在”选项。
 5)重新启动你的计算机,打开网络邻居的属性,双击相应网卡项会发现有一个 Network Address 的高级设置项,可以用来直接修改 MAC 地址或恢复原来的地址(选中不存在)。

根据这个方法,我们可以做一个.reg文件或者.bat文件来操作注册表,但是这样相对麻烦一些。这里我们使用第三方软件smac 1.0,注意:只能用1.0,其他高级版本不支持命令行参数,也就不能做bat文件了。

将smac.exe下载下来,copy到你的某个目录如:c:/myipconfig

然后我们利用命令 smac -ModifyMAC 0 000D45748512   其中0代表第0张网卡

3、一键修改IP及mac bat实现

      根据以上理论,我们便可实现了

         1)利用命令netsh -c interface dump > c:/myipconfig/ip1.txt将ip配置格式文件保存到ip1.txt中,打开ip1.txt修改相关配置信息为你的目标配置信息。

         2)手动将目标mac信息保存到mac.txt中

         3) 在本目录下新建记事本保存如下命令到bat中即可:

         @echo off
         echo 实验室IP配置
         echo fanston(fzd)制作,减轻你在实验室到宿舍频繁修改ip苦恼
         echo 提示:请确保您的网卡名称为"本地连接"
         pause

         echo 正在设置ip dns ...
         netsh -f ip1.txt
         echo IP dns设置完毕!

         echo 正在设置mac
         for /f "delims=" %%i in ('find "0" "mac.txt"')do set gmac=%%i
         smac -ModifyMAC 0 %gmac%
         echo mac设置完毕!

         echo 配置完毕!
         echo 有时需要禁用,并启用一下本地连接才可生效(一般情况不需要)
         pause


          当ip发生变化时,用户直接从ip1.txt和mac.txt 中配置相关信息即可,实现了代码无关性。

 

所有工具及代码全部在我分享的资源中,有兴趣的朋友可以下载试用!

目录
相关文章
mac上datagrip.vmoptions文件编辑错误导致DataGrip软件打不开
mac上datagrip.vmoptions文件编辑错误导致DataGrip软件打不开
|
8月前
|
缓存 网络协议 网络架构
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
【计算机网络】第三章 数据链路层(MAC地址 IP地址 ARP协议)
211 1
|
4月前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
|
5月前
|
域名解析 网络协议 虚拟化
|
3月前
|
iOS开发 索引 MacOS
mac文件搜索工具
【10月更文挑战第11天】
104 2
|
4月前
|
缓存 网络协议 网络架构
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
本文详细介绍了如何使用网络抓包工具Wireshark进行网络抓包分析,包括以太网v2 MAC帧、IP数据报、ICMP报文和ARP报文的格式,以及不同网络通信的过程。文章通过抓包分析展示了IP数据报、ICMP数据报和ARP数据报的具体信息,包括MAC地址、IP地址、ICMP类型和代码、以及ARP的硬件类型、协议类型、操作类型等。通过这些分析,可以更好地理解网络协议的工作机制和数据传输过程。
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
|
5月前
【科研技巧】Mac 系统如何给Endnote 20添加某篇文献信息和附加PDF文件
Mac系统下使用Endnote 20添加文献信息和PDF文件的详细步骤,包括下载.enw文件和在Endnote中导入这些文件的方法。
215 6
IP和MAC的作用区别
【9月更文挑战第3天】IP 是地址,有定位功能;MAC 是身份证,无定位功能
|
5月前
|
Linux
【Linux 或Mac系统】自动生成项目结构目录并放在README.md文件中
如何在Linux或Mac系统中使用tree命令自动生成项目结构目录,并将其格式化后放入项目的README.md文件中以展示项目结构。
132 1
|
5月前
|
SQL 关系型数据库 MySQL
Mac常用sh文件
Mac常用sh文件
40 0