做一个自动修改本机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 中配置相关信息即可,实现了代码无关性。

 

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

目录
相关文章
|
10天前
|
Windows
软件打不开,文件找不到了,如何找到隐藏文件?(windows和mac解决方案)
软件打不开,文件找不到了,如何找到隐藏文件?(windows和mac解决方案)
软件打不开,文件找不到了,如何找到隐藏文件?(windows和mac解决方案)
|
11天前
|
iOS开发 MacOS Windows
Mac 去除自动生成.DS_Store文件
Mac 去除自动生成.DS_Store文件
9 0
|
21天前
|
IDE 开发工具 计算机视觉
关于opencv在PyCharm中没有提示的解决方案mac和win通用(不是改文件和复制)
由于最近有项目需要使用到IDE的debug功能,jupyter notebook没有debug功能,所以需要使用PyCharm。平时使用jupyter的时候也没有遇到opencv没有提示的问题,所以遇到这个问题的时候上网搜索了各种方法包括但不限于:复制文件,修改init文件,降低opencv版本等一系列方法都无效。我在三天内重装了5次系统n次anaconda,终于在最后解决了这个问题,放在这里供大家参考。
|
23天前
|
数据安全/隐私保护 Windows
Mac 或Windows下配置hosts文件
Mac 或Windows下配置hosts文件
20 0
|
25天前
|
iOS开发 MacOS
Mac 解决安装软件文件已损坏,打不开,您应该推出磁盘映像
Mac 解决安装软件文件已损坏,打不开,您应该推出磁盘映像
18 0
|
28天前
|
程序员 Windows
Mac 或Windows下修复受损的Excel文件(文档打开就关闭)
Mac 或Windows下修复受损的Excel文件(文档打开就关闭)
15 0
|
2月前
|
调度 iOS开发 开发者
Mac提示文件:已损坏,无法打开。你应该把它移到废纸篓
Mac提示文件:已损坏,无法打开。你应该把它移到废纸篓
46 0
|
3月前
|
Web App开发 开发者
Mac Chrome crx(插件) 文件导出与导入
Mac Chrome crx(插件) 文件导出与导入
104 0
|
4月前
|
数据安全/隐私保护 iOS开发 开发者
Mac解决安装软件文件损坏问题
Mac解决安装软件文件损坏问题
|
6月前
Mac打开访达后如何快速知道当前文件绝对路径?
Mac打开访达后如何快速知道当前文件绝对路径?
51 0