[Windows] 批处理修改Mac,IP

时间:2022-09-04 16:05:35

因:由于局域网内使用的iNode客户端,mac和ip是绑定的,并且禁止使用伪mac,也禁止使用wifi。怎么办呢,外置USB网卡可以解决伪mac问题!

使用外置usb网卡上网,每次开机需要修改mac,有时还需要修改ip,才能上网,改过几次就觉得麻烦了,不能将就着了。

先看一下手动配置的整个过程:

开机→修改USB网卡mac(会重启网卡)→再将改为空(又会重启网卡)→配置ip→重连iNode→上网ok

其实整个过程都可以用批处理代替,省时省力省心。下面来一步步看:

1、修改mac

如何修改mac,就要先知道mac存在哪。当我们手动给网卡设置一个伪mac时,会在网卡所在的注册表中生成一项NetworkAddress,当再设置为空时,次项又被删除,那我们就可以通过批处理操作注册表了。

(1)如何找到网卡的注册表位置:

可以通过网卡名字进行搜索,可能会出现多个位置,我们要定位到的位置是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class下的某一个路径,比如我的是:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0012 (后面的字符串和0012,每台电脑基本都不一样)

[Windows] 批处理修改Mac,IP

(2)批处理命令

echo 修改网卡Mac...

@set reg=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e971-e315-12ce-bfc1-08002be10518}\0012

@set MAC=60AB611A311F

@reg add "%reg%" /v NetworkAddress /t reg_SZ /d "%MAC%" /f

说明:echo 用来显示当前进行的操作,也就是给我们一个提示,现在正在干什么

          @set 是设置的参数,可以通过%%使用,比如%reg%,因为后面的命令会多次用到这个路径,所以我们设置成参数,方便以后的修改

           @reg表明是操作注册表的命令

2、重启网卡

改mac需要重启网卡,才能有效,而通过注册表改mac,不会重启网卡,所以还需要用命令重启网卡

@set INTERFACE=本地连接

echo 重启本机网卡...

netsh interface set interface "%INTERFACE%" disable

netsh interface set interface "%INTERFACE%" enable

说明:netsh  用于网络配置的命令,interface表示网络连接那的名字(我的叫本地网络)

3、再将mac改成空

echo 设置Mac为空...

@reg delete ""%reg%"" /v NetworkAddress /f

说明:直接delelte,usb的网卡的一个好处,删除刚才设置的伪mac,它记录的还是刚才的mac

4、再重启网卡

echo 重启本机网卡...

netsh interface set interface "%INTERFACE%" disable

netsh interface set interface "%INTERFACE%" enable

5、设置ip

@set IP=你的IP
@set MASK=子网掩码
@set GATEWAY=网关
@set DNS1=首选DNS
@set DNS2=备选DNS

echo 正在设置IP...

netsh interface ip set address "%INTERFACE%" static %IP% %MASK% %GATEWAY% 0

netsh interface ip set dns "%INTERFACE%" static %DNS1% PRIMARY

netsh interface ip add dns "%INTERFACE%" %DNS2% index=2

6、重启iNode

@set iNode=iNode Client.exe
@set iNodePro=C:\Program Files (x86)\iNode\iNode Client\iNode Client.exe

echo 重启iNode...

taskkill /f /im "%iNode%"

start "" "%iNodePro%"

说明:最后重启iNode客户端,不用手动重连了。

7、最后将批处理放入开机启动项,从开机到连上网整个过程不用手动操作了。


最后再看下完整代码吧:

@echo off

echo 参数

@set INTERFACE=本地连接
@set MAC=60AB611A311F
@set IP=你的IP
@set MASK=子网掩码
@set GATEWAY=网关
@set DNS1=首选DNS
@set DNS2=备选DNS
@set reg=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0012

@set iNode=iNode Client.exe
@set iNodePro=C:\Program Files (x86)\iNode\iNode Client\iNode Client.exe


echo 启动本机网卡...

netsh interface set interface "%INTERFACE%" enable

echo 修改网卡Mac...

@reg add "%reg%" /v NetworkAddress /t reg_SZ /d "%MAC%" /f

@reg add "%reg%\Ndi\params\NetworkAddress" /v default /t reg_SZ /d "%MAC%" /f

echo 重启本机网卡...

netsh interface set interface "%INTERFACE%" disable

netsh interface set interface "%INTERFACE%" enable

echo 设置Mac为空...

@reg delete ""%reg%"" /v NetworkAddress /f

echo 正在设置IP...

netsh interface ip set address "%INTERFACE%" static %IP% %MASK% %GATEWAY% 0

netsh interface ip set dns "%INTERFACE%" static %DNS1% PRIMARY

netsh interface ip add dns "%INTERFACE%" %DNS2% index=2

echo 重启本机网卡...

netsh interface set interface "%INTERFACE%" disable

netsh interface set interface "%INTERFACE%" enable

echo 重启iNode...

taskkill /f /im "%iNode%"

start "" "%iNodePro%"

@echo 设置完毕,自动退出!

exit


话说没有图形界面的时候,DOS时代不都是一条条这样的命令来完成工作的!