procedure ChangeIP(); var TmpReg:HKEY; sIP,sMask:string; wsIP,wsMask:array [0..16000] of char; iIP,iMask,i:integer; begin iIp:=0;iMask:=0;i:=0; FillChar(wsIP,sizeOf(wsIP),#0); FillChar(wsMask,sizeOf(wsMask),#0); sIP:=192.168.1.1;sMask:=255.255.255.0; iIP:=length(strIP)+1;iMask:=length(strMask)+1; strReg:='SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{122223222222222222222222}';//网卡 for i:=0 to iIP-1 do wsIP[i]:=sIP[i+1]; for i:=0 to iMask-1 do wsMask[i]:=sMask[i+1]; if RegOpenKeyEx(HKEY_LOCAL_MACHINE,Pchar(strReg),0,KEY_WRITE,TmpReg) = ERROR_SUCCESS then try RegSetValueEx(TmpReg, PChar('IPAddress'),0, REG_MULTI_SZ, @wsIP, iIP); finally RegCloseKey(TmpReg); end; if RegOpenKeyEx(HKEY_LOCAL_MACHINE,Pchar(strReg),0,KEY_WRITE,TmpReg) = ERROR_SUCCESS then try RegSetValueEx(TmpReg, PChar('SubnetMask'),0, REG_MULTI_SZ,@wsMask, imask); finally RegCloseKey(TmpReg); end; end;
http://www.web1688.com/ip.rar
用winexec执行
netsh interface ip set address 本地连接 static 192.168.1.1 255.255.255.0 192.168.1.1 1
var
TmpReg:HKEY;
sIP,sMask:string;
wsIP,wsMask:array [0..16000] of char;
iIP,iMask,i:integer;
begin
iIp:=0;iMask:=0;i:=0;
FillChar(wsIP,sizeOf(wsIP),#0);
FillChar(wsMask,sizeOf(wsMask),#0);
sIP:=192.168.1.1;sMask:=255.255.255.0;
iIP:=length(strIP)+1;iMask:=length(strMask)+1;
strReg:='SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{122223222222222222222222}';//网卡
for i:=0 to iIP-1 do
wsIP[i]:=sIP[i+1];
for i:=0 to iMask-1 do
wsMask[i]:=sMask[i+1]; if RegOpenKeyEx(HKEY_LOCAL_MACHINE,Pchar(strReg),0,KEY_WRITE,TmpReg) = ERROR_SUCCESS then
try
RegSetValueEx(TmpReg, PChar('IPAddress'),0, REG_MULTI_SZ, @wsIP, iIP);
finally
RegCloseKey(TmpReg);
end;
if RegOpenKeyEx(HKEY_LOCAL_MACHINE,Pchar(strReg),0,KEY_WRITE,TmpReg) = ERROR_SUCCESS then
try
RegSetValueEx(TmpReg, PChar('SubnetMask'),0, REG_MULTI_SZ,@wsMask, imask);
finally
RegCloseKey(TmpReg);
end;
end;