如何在delphi中读取、修改机器的ip地址及dns??(20分)

G

gf.z

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在delphi中读取、修改机器的ip地址及dns??
(全部分上,20,就这么点了)
 
可以通过修改注册表修改,可是好像需要重新启动机器才能生效。
var
Reg: TRegistry;
ss:String;
err:integer;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/{F88FB2E0-A689-4A31-B77C-75ED47CE7F43}', True) then
begin
Reg.WriteString('NameServer','211.97.162.45');
ss:='10.65.77.119'+#0#0;
err:=RegSetValueEx(reg.CurrentKey, PChar('IPAddress'), 0, REG_MULTI_SZ , @ss[1], length(ss));
Reg.CloseKey;
end;
finally
Reg.Free;
end;
win2000 测试通过。
 
我说是在程序里面实现!!
 
function TfmMain.GetLocalIP: string;
var
wVersionRequested: WORD;
wsaData: TWSAData;
p: PHostEnt;
s: array[0..128] of Char;
begin
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
try
GetHostName(@s, 128);
p := GetHostByName(@s);
{Get the IpAddress}
Result := StrPas(iNet_ntoa(PInAddr(p^.h_addr_list^)^));
finally
WSACleanup
end
end;
 
顶部