vb修改mac地址的问题

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

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

usb网卡因为是一个即插即用型的设备,可能修改后重启并不一定有效,所以你的测试不具有代表性。这里只给你一个思路,因为我看你的vb用的应该还是可以的,而且对系统也有一定的了解。
修改mac地址一般是为了非法用户获取合法权限才去修改的,其实可以有很多变通的方法。比如找一个合法用户的网卡做一个共享,也可以用一个路由,当然这个路由的mac地址需要克隆一下(一般路由都有这个功能)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-03
你的实验结果充分说明了:
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,然后具体分析一下在做修改。

我想用vbs或者批处理实现获取本机的mac地址,然后修改一个文件里面的多个...
set ipname=%hj::= ::自动断线重连,启用新的MAC地址 echo Const ssfCONTROLS = 3 >"%temp%\\00.vbs"echo sConnectionName = "%ipname%" '可改成需要控制的连接名称,如"无线网络连接"、"区域联机 2"等>>"%temp%\\00.vbs"echo sEnableVerb = "启用(&A)">>"%temp%\\00.vbs"echo s...

如何利用VB调出网卡的MAC地址
方法一:先用SHELL调用:shell ("winipcfg.exe \/all \/batch" & app.path & "\\mac_add.txt")然后读取mac_add.txt中得到的mac地址。方法二:用WMI:'代码如下:Private Sub Form_Load()Dim MacstrComputer = "."Mac = ""'获得MAC信息Set objWMIService = GetObject("winmgmts:" & "{impersona...

如何用批处理文件实现自动修改网卡物理地址
echo off set\/p mac=请输入MAC地址(格式如:00e2d5s86d9s):set x=0 :ag3 reg query HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}\\000%x%\\Ndi\\params \/s>nul 2>nul||set \/a x+=1&&goto ag3 echo 找到000%x% 开始设置...reg...

求vb改Mac号的代码,可以的话给100分
真正修改的方法除了“网卡属性-高级-本地管理的地址里选择“值””之外,还可以去下载一个专门的MAC地址修改软件。但是每一个芯片厂家的软件是不同的。所以要自己去芯片厂家的主页上去找。而且好像并不是所有网卡的物理地址都支持修改的。修改注册表只是骗过了windows ...

如何用VB编程,获取网关MAC
一、用nbtstat -a ip 命令,用.net中processstartinfo和process类取得命令输出,最后一行就是mac地址 mac address.二、用.net中的wmi:system.management namespace hosted in system.management.dll assembly 例:managementobjectsearcher query = new managementobjectsearcher(

vb mac地址获取错误
Text1.Text = GetMACAddress

vb中怎么能调用自已电脑的mac地址?
`retrieve the MAC Address for the network controller `installed, returning a formatted string Dim tmp As String Dim pASTAT As Long Dim NCB As NET_CONTROL_BLOCK Dim AST As ASTAT `The IBM NetBIOS 3.0 specifications defines four basic `NetBIOS environments under the NCBRESET command...

如何用VB获得机器的MAC地址
colIP If Not IsNull(IP.IPAddress) Then For I = LBound(IP.IPAddress) To UBound(IP.IPAddress) MsgBox "IP 地址:" & IP.IPAddress(I) & Chr(10) & _ "网卡类型:" & IP.Description(I) & Chr(10) & _ "网卡地址:" & IP.Macaddress(I) Next End If...

VB获取网卡MAC运行时出错的问题?
VB获取网卡MAC运行时出错是因为Dim strComputer As String Dim objWMI As Object Dim colIP As Object Dim IP As Object Dim I As Integer strComputer = "."Set objWMI = GetObject("winmgmts:\/\/" & strComputer & "\/root\/cimv2")Set colIP = objWMI.ExecQuery("Select * from Win32_...

断开网络连接后mac地址变成全0了,怎样改回来呢?
断开网络连接后mac地址变成全0了,怎样改回来呢? 用这个软件MAC地址精灵 :sky.\/soft\/17158.window7 怎样断开网络连接 win7系统断开网络连接方法如下: 1点击电脑屏幕右下角向上小三角形 2点击信号按钮 3点击你网络名称后,点断开按钮就可以 怎样用VB断开网络连接 两个命令按钮,一个text,一个...

相似回答