vb修改mac地址的问题

高分请分析下,vb修改mac地址的问题?

我用vb写了一个修改usb网卡的mac地址的程序,原理是在注册表中添加网络地址这一项,但是修改后,我发现在本地连接-配置-高级-网络地址里面确实是我修改后的mac地址,但是用ipconfig/all命令查看发现还是我原来的mac地址,我手动禁用了网卡,然后启用还是不行,再重启电脑依然不行。求解...
最新回答
守护爱人找到爱人

2024-10-12 13:07:18

早期的xp确实可以在注册表中手动修改mac地址,这个我原来改过。你可以对你的本地网卡在注册表中手工修改mac地址,完成后重启电脑看一下是否有效。如果有效你用vb操纵你的注册表肯定能行。

usb网卡因为是一个即插即用型的设备,可能修改后重启并不一定有效,所以你的测试不具有代表性。这里只给你一个思路,因为我看你的vb用的应该还是可以的,而且对系统也有一定的了解。
修改mac地址一般是为了非法用户获取合法权限才去修改的,其实可以有很多变通的方法。比如找一个合法用户的网卡做一个共享,也可以用一个路由,当然这个路由的mac地址需要克隆一下(一般路由都有这个功能)。
深蓝菇凉

2024-10-12 12:42:07

你的实验结果充分说明了:
1、你修改的MAC地址实际上是存放在注册表中的数据表内容,这个值只是提供给需要访问的系统临时读取数据用。
2、网卡的MAC地址是制作网卡硬件的时候由厂家直接编制好的全球唯一的一标示符号(身份证编号),是不能修改的。(现在有些虚拟的地址是存放在flash中,可以改)
3、ipconfig/all读取的不是注册表信息,而是网络硬件的参数

所以你对注册表的修改只能这样了。
追问
如果我正常的在本地连接-属性-配置-高级-网络地址里面修改mac,然后ipconfig/all显示的是我修改后的mac,这应该是可以说明这个命令不是读取硬件中的参数
追答
ipconfig/all读取的信息是Windows注册表的信息!我已经验证了,是我讲的才草率了,不对! 向你道歉了...

关于修改MAC地址的问题,我具体做了一下,情况如下:
1、在“网卡配置”信息处修改,正是你说的那样,连接-属性-配置-高级-网络地址
这是,有选择“不存在”和“值”两个选项,要改变,就选择“值”,然后输入一个新的12位数,“应用”-“确认”
2、在注册表中直接修改,HKEY_LOCAL_MACHINE -> SYSTEM -> ControlSet001 ->Class -> {4D36E972-E325-11CE-BFC1-08002bE10318} ->0011 -> NetworkAddress
我估计系统不同,NetworkAddress所在的注册表信息有差异,但 NetworkAddress 这个键值应该不会变,双击可以修改新的值 (注意:别修改到下面的NDI->Params选项里面了!)

以上任何一项修改完成后,要重新启动电脑,然后用 ipconfig /all 查询参数就显示OK了,而且我在该电脑所连接的路由器中查看,与路由器连接地址MAC也是修改后的新地址了。

至于说你用VB的修改,估计是注册表的键值没有找对,你仔细查看一下。
比如我的电脑上有固定网卡和无线网卡,注册表中就有两项信息({4D36E972-E325-11CE-BFC1-08002bE10318}值不同),要确定修改的是那一个.

我的系统是XP.可能别的系统在注册表的罗列上有些出入,仔细查找NetworkAddress,然后具体分析一下在做修改。