如何通过编程改变ip?(可照下面过程) (100分)

  • 主题发起人 主题发起人 qhx
  • 开始时间 开始时间
Q

qhx

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样改ip而不要重启计算机: 在局域网中的用户一般都有固定的ip地址,但是有时候要修改ip地址的又不想重新启动计算机,就可以在改好后,它提示是否重启,选择不,然后在设备管理器中,把网卡先禁用然后再起用就行了.
 

传授经验,还给分,好人~~:)
 
pass,这可不是不是传授经验啊,要是NT还好办,不用重启就可以实现。
但是“设备管理器中,把网卡先禁用然后再起用”编程如何实现还有待解决。
 
对api我不熟.这是看到论坛上的文章.
修改ip地址用什么api或注册表?
设备管理器中,把网卡先禁用然后再起用什么api或注册表?

 
好东东。
 
好主意!
但编程如果实现呢?
 
如何动态改变/添加网络设置中的 TCP/IP 的 DNS 地址




例如,把 DNS Server的地址添加为192.0.0.1和192.1.1.0,可调用:


SetTCPIPDNSAddresses('192.0.0.1 192.1.1.0') ;

// 各地址之间用一个空格隔开


1. SetTCPIPDNSAddresses 定义如下:


procedure SetTCPIPDNSAddresses( sIPs : string );

begin

// if using Windows NT

SaveStringToRegistry_LOCAL_MACHINE('SYSTEM/CurrentControlSet' +'/Services/Tcpip

/Parameters'

'NameServer'

sIPs );


// if using Windows 95


SaveStringToRegistry_LOCAL_MACHINE('SYSTEM/CurrentControlSet' +'/Services/VxD/MSTCP'


'NameServer'

sIPs );

end;


2. 其中 SaveStringToRegistry_LOCAL_MACHINE 定义:

uses Registry;


procedure SaveStringToRegistry_LOCAL_MACHINE(

sKey

sItem

sVal : string );

var

reg : TRegIniFile;

begin

reg := TRegIniFile.Create( '' );

reg.RootKey := HKEY_LOCAL_MACHINE;

reg.WriteString( sKey

sItem

sVal + #0 );

reg.Free;

end;

 
try flow:
修改自己机器IP:
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if
Reg.OpenKey('/System/CurrentControlSet/Services/Class/NetTran
s/0000', True)
then Reg.WriteString('IPAddress','192.1.1.1');
Reg.CloseKey;
Reg.Free;
end;
end;
 
建议:程序写好后,共享一下!
 
在winme中可以导出
[HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/NetTrans/0001]
"IPAddress"="10.8.25.8"
"IPMask"="255.255.255.0"
再根据需要修改,如"IPAddress"="192.168.1.0",把要设的IP导入后,在设备管理器中,
把网卡先禁用然后再启用就行了,能达到不重起机器下完成!

有没有高手能把它用程序自动完成,
 
有没有高手能把它用程序自动完成,
 
关住。。。
 
假如机器上面有10块网卡,我怎样改变其中某一块网卡的ip地址和.....呢??
有谁能写一段程序完成上面的过程,并将程序共享以下,呵呵,大家进步吗
 
这是难题,有哪位大侠还有方法!!!!!
 
有没有高手能把它用程序自动完成,
 
98下改注册表就行么?
 
后退
顶部