更改MAC地址(100分)

S

sbamwdx

Unregistered / Unconfirmed
GUEST, unregistred user!
求一更改MAC地址的方法。我通过注册表方式更改无效。代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
Regst: TRegistry;
s:string;
begin

s:=trim(MaskEdit1.Text);
//新的MAC地址
if s='' then
begin
MessageBox(Handle,PChar('地址不能为空!'),'提醒',MB_OK or MB_ICONERROR);
exit;
end;
if MessageBox(Handle,PChar('确定要将'+s+' 设置为新MAC地址吗?'),'提醒',MB_OKCANCEL or MB_ICONINFORMATION)=idcancel then
exit;
s:=StringReplace(s,'-','',[rfReplaceAll]);
Regst := TRegistry.Create;
try
Regst.RootKey := HKEY_LOCAL_MACHINE;
if Regst.OpenKey('/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318/0001', False) then
// 0001 为真实网卡
Regst.WriteString('NetworkAddress',s);
if Regst.OpenKey(vmaclist[ComboBox1.ItemIndex].RKeyPath+'/Ndi/params', False) then
Regst.CreateKey('NetworkAddress');
if Regst.OpenKey(vmaclist[ComboBox1.ItemIndex].RKeyPath+'/Ndi/params/NetworkAddress', False) then
begin
Regst.WriteString('default',s);
Regst.WriteString('ParamDesc',ComboBox1.Text);
//其作用为指定 NetworkAddress 主键的描述,其值可自己命名,如“ Network Address ”
Regst.WriteString('Optional','1');//其值设为“ 1 ”,则以后当你在网卡的高级属性中选择 Network Address 项时,右边会出现“不存在”选项
end;
finally
FreeAndNil(Regst);
end;
if MessageBox(Handle,'设置完成,计算机必须重启才能生效,是否现在重启?','提醒',MB_OKCANCEL or MB_ICONINFORMATION)=idok then
RebootSystem;
end;

设置完重启动后
cmd /c ipconfig /all
MAC依旧是老的。
 
MAC地址貌似是出厂设定好的,是不可更改的吧;要修改的话,只能修改注册表里的
 
注册表里改了也不起作用呀?
网上有工具可以修改。修改完后到别的计算机上也能看到后修改的MAC地址
 
我修改过几次,就在本地连接下面。不过有的计算机不行,不知道是什么原因。
 
FReg := TRegistry.Create;
FReg.RootKey := HKEY_LOCAL_MACHINE;
if fReg.openKey('/SYSTEM/ControlSet001/Control/Class/{4D36E972-E325-11CE-BFC1-08002BE10318}/0000',False) then
begin
freg.WriteString('networkaddress','888888888888');
end;
freg.Free;
或者本地连接->属性->常规中点击配置->高级->Network Address 输入你想要的MAC
 
2楼的兄弟:硬件的MAC的确是不能这样改,只能用专用工具。这里的方法是WINDOWS中提供的,我分析原理大约如下:
WINDOWS通过驱动程序访问网卡,其中MAC本来是应该从网卡中读取的,然后用于网络通讯,但是在WINDOWS中提供了一个更改的方法,就是可以在注册表(或什么地方)保存一个值,如果这个值存在则用其作为MAC,否则才直接从网卡取MAC
 
一般应用程序访问都不是访问网卡特殊理地址,所以在WINDOWS上修改还是有用的。 只是我还没找到解决办法。网上得很多介绍都是用我写的上速度方法来改的。但最终还是不管用。
 
to: znj_326
你说的方法不管用。两种法子试了。最终 IPCONFIG /ALL 查看时还是原样。根本改不了
 
K-MAC工具可以更改MAC地址的,网上找找,很好用,但不知道是如何实现的!
 
就是想不通那些工具是如何更改MAC地址的。我也是找过相关工具可以更改。但就是想不明白是如何实现的。
 
我有源码,QQ:283099
 
结贴算了。
 

Similar threads

D
回复
0
查看
710
DelphiTeacher的专栏
D
D
回复
0
查看
734
DelphiTeacher的专栏
D
D
回复
0
查看
583
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部