如何修改笔记本电脑网卡的物理

ning1958 2010-07-07 08:19:12
http://topic.csdn.net/u/20100627/13/43d4fd97-146b-4b85-a0fe-e4b70c60efb3.html
通过编程方法获得网卡的物理地址.

'自己写的

Option Explicit
Private Sub Command1_Click()
Call GetMacAddress
End Sub

Function GetMacAddress() As String
Dim i&, j&, OutChar$
Dim fn As Byte, pos1&, pos2&, ArrayChar$(1)
'输出IP信息
Shell "cmd /c ipconfig/all > C:\Ping", vbHide
fn = FreeFile
RETRY:
Open "c:\ping" For Binary Access Read As #fn
OutChar$ = Space$(FileLen("c:\ping"))
'读取IP信息
Get #fn, , OutChar$
Close #fn
If Len(OutChar$) = 0 Then GoTo RETRY
'搜索Physical Address
pos1 = InStr(OutChar$, "Physical Address")
Do While pos1 <> 0
'搜索:标志
pos2 = InStr(pos1, OutChar$, ":")
'取MAC Address, 长度18
ArrayChar(j) = Mid$(OutChar$, pos2 + 1, 18)
'判断是否有多个网卡
pos1 = InStr(pos2, OutChar$, "Physical Address")
If pos1 <> 0 Then j = j + 1
Loop
For i = 1 To j + 1
MsgBox "第" & i & "个网卡的MAC ADDRESS 是" & ArrayChar(i - 1)
Next
Kill "C:\Ping"
End Function


请问各位大侠的问题,既然这个程序能读网卡的物理地址.
能否在此基础,修改网卡的物理地址.

...全文
2001 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbkjccl 2010-07-08
  • 打赏
  • 举报
回复
可以手动修改 软件不会

打开设备管理器--网络适配器--右键网卡属性--高级--network address 然后填写你的mac地址
flfq 2010-07-08
  • 打赏
  • 举报
回复
好像不能改吧
ning1958 2010-07-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yiguangqiang88 的回复:]
你看下自己网卡的MAC地址,然后看能不能在注册表中找到该值。如果能找到可尝试修改下试试效果。
[/Quote]
这个可以通过IPconfig/all得到,不用编程.
fzx4936 2010-07-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ning1958 的回复:]
既然是修改注册表,为什么不能代码修改???[/Quote]
只怕你改了之后 系统无法找到这块网卡

MAC(Medium Access Control, 介质访问控制)MAC地址是烧录在NetworkInterfaceCard(网卡,NIC)里的.MAC地址,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.0-23位是由厂家自己分配.24-47位叫做组织唯一标志符(organizationally unique,是识别LAN(局域网)节点的标识.。其中第40位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
xslslx 2010-07-08
  • 打赏
  • 举报
回复
具体方法4楼的基本上就可以了,在程序中对注册表操作的时候你可以用对比其中的network address的值,或者在0000-0010.。。。。。将所有的子项都创建一个network address并且赋值,这样就算不知道在哪也没关系了,当然产生的后果由你自己负责,因为这个方法我自己都没试过,重装系统虽然时间不长,但是我很懒……
  • 打赏
  • 举报
回复
你看下自己网卡的MAC地址,然后看能不能在注册表中找到该值。如果能找到可尝试修改下试试效果。
xslslx 2010-07-08
  • 打赏
  • 举报
回复
回复楼主:
网卡本身的物理地址,我们可以看成是一个标识,唯一能对网卡进行区分的标识。这个标识本身是存储在网卡的存储器上的,在我们第一次使用网卡的过程中我们的计算机会在系统中映射一个数据管道,来连接到网卡,当管道建立了以后系统中会利用管道进入到网卡的数据区,将标识拷贝出来并且生成一个管道接口,将所有需要用到网卡的数据通过接口反复与计算机和网卡之间,我们所能更改的是计算机和管道之间的接口名称,也就是计算机中记录的MAC地址,并不是实际上网卡的名称,一般这样的名称和管道会存放在注册表中,只要掌握了注册表的操作,在VB6中是可以对管道接口标识进行更改的。。。。。。希望对楼主有用
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ning1958 的回复:]
引用 5 楼 yiguangqiang88 的回复:
你看下自己网卡的MAC地址,然后看能不能在注册表中找到该值。如果能找到可尝试修改下试试效果。

这个可以通过IPconfig/all得到,不用编程.
[/Quote]
这是个思路,意思是看看能不能直接修改注册表中这个MAC值,和是否有效。如果有可能那么用编程就容易解决了。
ning1958 2010-07-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hbkjccl 的回复:]
可以手动修改 软件不会

打开设备管理器--网络适配器--右键网卡属性--高级--network address 然后填写你的mac地址
[/Quote]

这个在兼容机是可以的,在3com网卡要改,麻烦的很,看了半天的帖子都没有成功.
ning1958 2010-07-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fzx4936 的回复:]
Nac地址用代码是无法"软"修改的
[/Quote]

是不是只能按下面步骤操作,注册表修改方法操作.

---------------------

第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地址或恢复原来的地址。


操作n遍也没有成功.
既然是修改注册表,为什么不能代码修改???
fzx4936 2010-07-07
  • 打赏
  • 举报
回复
Nac地址用代码是无法"软"修改的
嗷嗷叫的老马 2010-07-07
  • 打赏
  • 举报
回复
貌似这只是改了系统中保存的MAC地址.

实际的MAC地址是存在于网卡的ROM中,除了重刷ROM或者网卡本身支持修改,别的招貌似都不行.

你这样改一下,网卡使用时,其实际MAC并没变吧?
ning1958 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 ning1958 的回复:]
http://topic.csdn.net/u/20100627/13/43d4fd97-146b-4b85-a0fe-e4b70c60efb3.html
通过编程方法获得网卡的物理地址.

'自己写的(对不起这是转载,不是我写的)

Option Explicit
Private Sub Command1_Click()
Call GetMacAddress
End Sub

Function Get……
[/Quote]

http://www.52xingxing.cn/show.asp?id=896

本帖的目的
通过网卡的物理地址进行访问网络的,那么一定会碰到需要修改物理地址的情况。如更换新网卡,网卡的物理地址重复或者让笔记本电脑临时登陆一下网络等情况。更改网卡MAC地址

----选中左栏“属性”中“Network Address---笔记本电脑没有这个选项.
----注册表修改方法,半天没看懂.
因此,想扩展这个帖子的功能http://topic.csdn.net/u/20100627/13/43d4fd97-146b-4b85-a0fe-e4b70c60efb3.html

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧