如何獲取本機IP,以及修改本機IP(10分)

  • 主题发起人 主题发起人 ewengung
  • 开始时间 开始时间
E

ewengung

Unregistered / Unconfirmed
GUEST, unregistred user!
我想編一個象注冊終結者一樣的軟件﹐修改本機的各項設置。但我不知如何獲取本機IP地址
(局域網靜態地址),同時也不知如何修改這一靜態IP。我說的是編程修改﹐不要跟我說從控
制面板修改啊﹗
help me!
 
gethostbyname
 
使用GetHostByName雖然可以獲取IP,但如何對本機IP進行修改呢?
首先對Chenlili進行致謝﹐希望您能解答我最后的問題。
 
运行regedit, (假设你的ip为192.168.4.2),
按ctrl-f查找即可找出等于192.168.4.2的键值来, 再按F3找下一个 :)))))))
 
to xie ke可直接在注册表中修改键值吗??
 
个人认为修改ip是不可能的
獲取本機IP:
program get_ip;
uses
winsock,sysutils;
var
ch : array[1..32] of char;
i : integer;
wsdata: twsadata;
myhost: phostent;
begin
if wsastartup(2,wsdata)<>0 then
begin
writeln('can''t start winsock: error ',wsagetlasterror);
halt(2);
end;
try
if gethostname(@ch[1],32)<>0 then
begin
writeln('gethostname failed');
halt(3);
end;
except
writeln('gethostname failed');
halt(3);
end;
myhost:=gethostbyname(@ch[1]);
if myhost=nil then
begin
writeln(gethostname('+strpas(@ch[1])+') failed : error
'+inttostr(wsagetlasterror));
halt(4);
end
else
begin
write('address ');
for i:=1 to 4 do
begin
write(ord(myhost.h_addr^[i-1]));
if i<4 then
write('.')
else
writeln;
end;
end;
end.
 
给你一个函数用一用
function GetLocalIp:string;
var
aa: pchar;
// bb: in_addr;
hostaddr: phostent;
k,i,j:integer;
bb: wsadata;
begin
GetMem(aa, 80);
FillChar(aa^, 80, 0);
WSAStartup(2,bb);
if gethostname(aa, 80)= SOCKET_ERROR then
Result:='127.0.0.1'
else
begin
hostaddr := gethostbyname(aa);
k:= 0;
for j := 1 to HostAddr^.h_addrtype do
begin
if j > 1 then
Result := Result +' ';
for i := 1 to hostAddr^.h_length do
begin
Result := Result + IntToStr(ord(HostAddr^.H_addr_List^[k]))+'.';
inc(k);
end;
Delete(Result, Length(Result), 1);
end;
end;
FreeMem(aa);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption := GetLocalIp;
end;
 
首先调用Windows API修改注册表
HKEY_LOCAL_MACHINES/System/CurrentControlSet/Services/Class/NetTrans/000x
中含有自己IP地址的键值
改完之后再调用API重新启动计算机,OK?
 
可以通过修改注册表修改IP地址!
 
重新启动计算机?IP不是上网才随机分配的吗?你是专线上网?或是服务器?
 
他说的是局域网的IP
 
对,改注册表是可以的,可以自己试.
 
謝謝各位的幫忙﹐雖然有些朋友未得到分﹐因我不是大富翁﹐只能出十分。我可以得到本機IP,
但我不會在Delphi中修改注冊表﹐不知那位朋友可以給我指導。不勝感激。同時我將以正版
軟件款待。mailto:ewengung@163.net
 
看一看: http://www.delphibbs.com/delphibbs/DispQ.asp?LID=273429
 
后退
顶部