在程序中修改IP地址和物理地址 ( 积分: 200 )

  • 主题发起人 主题发起人 Xiao_Z
  • 开始时间 开始时间
X

Xiao_Z

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,在程序中实现。
恳求各位帮忙,那个物理地址指的是在“配置”-->“高级”-->“NetWork Address”中的值。要是能改真正的物理地址,也请高手指教。
我在以前的帖子中搜到做好的例子,是去年四五月份的吧,已经下不了。谁有的话,发给我。立刻放分。lzg827@sina.com
最好有原码或者例子,我想2天内结贴。
请各位帮忙啦。谢谢
 
如题,在程序中实现。
恳求各位帮忙,那个物理地址指的是在“配置”-->“高级”-->“NetWork Address”中的值。要是能改真正的物理地址,也请高手指教。
我在以前的帖子中搜到做好的例子,是去年四五月份的吧,已经下不了。谁有的话,发给我。立刻放分。lzg827@sina.com
最好有原码或者例子,我想2天内结贴。
请各位帮忙啦。谢谢
 
IP地址好改,只需要调用命令就行了:
'netsh interface ip set address '+conname+' static '+IP+' '+mask+' '+gateway+' 1';
'netsh interface ip set dns '+conname+' static '+dns;

conname是网络连接名,一般是“本地连接”, IP是你要改为的IP地址 mask是子网掩码,gateway是网关 dns是DNS服务器IP

改MAC不好办,编程的方法都不能改实际网卡的地址,虽然实际使用ipconfig /all可以看见地址为你改过的,但是重装系统后还是会变成原来的

在windows下,修改注册表就可以实现MAC地址的转换:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002BE10318}子键
在该子键下的0000分支中查找DriverDesc,在0000子键下添一个字符串项,命名为NetworkAddress,键值设为修改后的MAC地址,要求为连续的12个16进制数,如1234567890AB。
 
谢谢hs-kill,我已经有点眉目了。

这个调用的命令怎么写到程序里呢?
呵呵,我是菜鸟,可是菜鸟也是鸟嘛。
能不能再详细一点点。
 
uses ShellAPI;
shellexecute(Handle, 'Open', PChar('netsh'), PChar('interface ip set address "' + sLink + '" static ' + sIP +' ' + sMask + ' ' + sGate + ' 1'), nil, SW_HIDE);
 
恩 和上面一样,不过我加了个等待,执行改IP命令等待时间比较长
uses shellapi;
var
exehwnd:HWND;


addstr:='netsh interface ip set address '+conname+' static '+IP+' '+mask+' '+gateway+' 1';
exehwnd:=shellexecute(application.Handle,'open',pchar(addstr),nil,nil,sw_HIDE);
waitforsingleobject(exeHwnd,infinite);
 
to :hs-kill and xianguo

谢谢你们的代码。
编译通过了,也运行了。
可是,我用ipconfig 查看 ,并没有改啊。
 
可不可以给我个例子啊

lzg827@sina.com
万分感谢
 
哪个没变? IP还是MAC?

如果IP没变你把addstr得到的字符串copy出来在命令行运行下看看是什么结果,注意那个conname要是你要该IP的网络连接的名字啊

如果MAC没变。。。好象需要重起下机器才行

例子嘛。。以前写了个方便改IP的程序,可是因为菜单问题没搞定,写到一半没写了。。-_-!

MAC我也没改过 -_-!
 
conname:='本地连接';
是吗?

我回家再试试,上班在局域网工作,不能连外网,郁闷哦
 
还是没有出来

55555555555555555555
 
解决了!
谢谢hs-kill和xianguo

特别是xianguo发的例子,非分感谢。

放分了,以后还请多指教。
 
huahua56711@sina.com
给我也发个谢谢
 

Similar threads

后退
顶部