当前位置:文档之家› 修改MAC地址

修改MAC地址

1、简单的修改方法
在桌面上的“网上邻居”图标上单击右键,选择“属性”,在弹出的“网络连接”的对话框中,在“
本地连接”图标上单击右键,选择“属性”,会弹出一个“本地连接属性”的对话框,单击“配置”按钮
,选择“高级”,选中左栏“属性”中“Network Address”(其实,并非所有的网卡,对物理地址的描述
都用“Network Address”,如Intel的网卡便用“Locally Administered Address”来描述,只要在右栏
框中可以找到“值”这个选项就可以了),然后选中右栏框“值”中的上面一个单选项(非“不存在”),
此时便可在右边的框中输入想改的网卡MAC地址,形式如“000B6AF6F4F9”。点击“确定”按钮,修改就
完成了。
2、注册表修改方法
第1步,单击“开始”,选中“运行”,键入“regedit”调出注册表。
第2步,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-
BFC1-08002BE10318}\0000、0001、0002 等主键下,查找 DriverDesc ,内容为要修改的网卡的描述,如
Intel的网卡会被描述成“Intel(R) PRO/100+ Management Adapter”,3Com的网卡会被描述成“3Com
EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX)”等。
注:上面提到的关于网卡描述的选项出现的位置,和网卡本身以及操作系统有关。不同的网卡可能出现在
不同的主键下,而同一网卡用不同版本的操作系统(如OEM版,VOL或者VLK等)也会出现在不同的位置。而
这一步的任务就是找到含有网卡描述的主键。
第3步,选中在第二步找到的主键,在右栏框中添加一个字符串,命名为“Network Address”,其值
设为要改的MAC地址,形式如“000B6AF6F4F9”。
注:到这一步,修改网卡物理地址的任务可以说是完成了,有的网卡需要重启以下才能正常的工作。
下面的几步是为了以后再修改物理地址方便用的。
第4步,在“第一步选中的主键”\Ndi\params下添加一项名为“NetworkAddress”的主键,此时一般
都会随着在右栏框中产生一个“(默认)”的字符串,将其值设置为最终想要修改的MAC地址,形式如
“000B6AF6F4F9”。如果没有此字符串,读者也可自行添加此字符串。
注:此步骤就是为网卡设置一个初始MAC地址。
第5步,在“NetworkAddress”的主键下继续添加名为“ParamDesc”的字符串,其作用为指定
“NetworkAddress”主键的描述,其值可自己命名,如“Network Address”,这样在网卡的高级属性中
就会出现“Network Address”选项,就是刚在注册表中加的新项“NetworkAddress”,以后只要在此修
改MAC地址就可以了。
第6步,在“NetworkAddress”的主键下继续添加名为“Optional”的字符串,其值设为“1”,则以
后在网卡的高级

属性中选择“Network Address”项时,右边会出现“不存在”选项。
第7步,重新启动计算机(不是一定要重新启动,但要视不同网卡的要求而定,不过,重启没有任何差
错。),按照第一种方法找到“高级”选项就可发现此时“属性”栏中已有“Network Address”的选项,
现在读者可以用来直接修改MAC地址或恢复原来的地址。







米老师给了一个批处理文件,很简单,经过我们改编成为现在这样可以在win7和xp下都可用的批处理。虽然段代码挺简单,但是却体现了软件开发的重要思想——复用!!

吾辈有待提高呀。。。

整了半天发现在if 和else中,不能说使用set命令。只好用goto了,并且win7下不能用arp -s命令绑定,需要用高级的绑定命令



@echo off
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
setlocal enabledelayedexpansion
if exist phyaddr.txt del phyaddr.txt

rem 查找指定行
set n=0
for /f "tokens=*" %%i in (ipconfig.txt) do (
set /a n+=1
if !n! equ 10 echo %%i>>phyaddr.txt
)
for /f "tokens=1" %%C in (phyaddr.txt) do set Cont=%%C
if %Cont%==物理地址. (
echo win7
goto win7
) else (
echo xp
goto winxp
)
:win7
if exist phyaddr.txt del phyaddr.txt
rem 查找指定行
set n=0
for /f "tokens=*" %%i in (ipconfig.txt) do (
set /a n+=1
if !n! equ 10 echo %%i>>phyaddr.txt
)

rem 找到本地的mac地址,给变量mac赋值
for /f "tokens=15" %%M in (phyaddr.txt) do set Mac=%%M

if exist IPAddr.txt del IPaddr.txt
find "IPv4 地址" ipconfig.txt >IPAddr.txt
rem 找到本地的ip
for /f "skip=2 tokens=16" %%I in (IPAddr.txt) do set IP=%%I
set var=%IP:~0,14%
::@echo on
arp -s %var% %Mac%
if exist GateIP.txt del GateIP.txt
find "默认网关" ipconfig.txt >GateIP.txt

rem 找到网关的ip
for /f "skip=2 tokens=15" %%G in (GateIP.txt) do set GateIP=%%G
if exist GateMac.txt del GateMac.txt
arp -a %GateIP% >GateMac.txt

rem 找到网关的mac地址
for /f "skip=3 tokens=2" %%H in (GateMac.txt) do set GateMac=%%H

netsh interface ipv4 show neighbors >ipv4.txt
set n=0
for /f "tokens=*" %%i in (ipv4.txt) do (
set /a n+=1
if !n! equ 1 echo %%i>>ipv4.txt
)
for /f "tokens=2" %%C in (ipv4.txt) do set ContD=%%C
set varD=%ContD:~0,2%
netsh interface ipv4 set neighbors %varD% %GateIP% %GateMac%
pause

if exist ipconfig.txt del ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
if exist IPAddr.txt del IPAddr.txt
if exist GateMac.txt del GateMac.txt
if exist GateIP.txt del GateIP.txt
if exist ipv4.txt del ipv4.txt
exit

:winxp
echo 执行xp

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
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
::@echo on
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
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
arp -s %GateIP% %GateMac%

if exist ipconfig.txt del ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
if exist IPAddr.txt del IPAddr.txt
if exist GateMac.txt del GateMac.txt
if exist GateIP.txt del GateIP.txt

exit



不是很熟悉批处理命令,用了一个很笨的方法。

相关主题
文本预览
相关文档 最新文档