GetHostByName函数和IP地址的问题 ( 积分: 50 )

  • 主题发起人 主题发起人 rainee
  • 开始时间 开始时间
R

rainee

Unregistered / Unconfirmed
GUEST, unregistred user!
看下面代码:
host:=GetHostByName(Pchar(edit1.text));
如果edit1.text是127.0.0.1或192.168.0.1结果就不对了,192.168.1.1结果正常.是什么问题,大家帮帮我...

代码:
procedure TForm1.Button1Click(Sender: TObject);
var
host:pHostent;
ip,ip1:string;
Err:Integer;
begin
try
host:=GetHostByName(Pchar(edit1.text));
except
err:=wsagetlasterror();
label1.caption:='error code:'+inttostr(err);
exit;
end;
ip:=copy(host.h_addr^,0,4);
ip1:=format('%d.%d.%d.%d',[ord(ip[1]),ord(ip[2]),ord(ip[3]),ord(ip[4])]);
edit2.text:=ip1;
end;
 
看下面代码:
host:=GetHostByName(Pchar(edit1.text));
如果edit1.text是127.0.0.1或192.168.0.1结果就不对了,192.168.1.1结果正常.是什么问题,大家帮帮我...

代码:
procedure TForm1.Button1Click(Sender: TObject);
var
host:pHostent;
ip,ip1:string;
Err:Integer;
begin
try
host:=GetHostByName(Pchar(edit1.text));
except
err:=wsagetlasterror();
label1.caption:='error code:'+inttostr(err);
exit;
end;
ip:=copy(host.h_addr^,0,4);
ip1:=format('%d.%d.%d.%d',[ord(ip[1]),ord(ip[2]),ord(ip[3]),ord(ip[4])]);
edit2.text:=ip1;
end;
 
byname是通過計算機名取地址的,你用地址去取怎麼會不錯呢。
 
但我用其他的IP地址就可以呀.
 
可能是系统的转换。
你通过地址取地址有什么意义呢?
 
如果你的计算机名是127.0.0.1或192.168.0.1,那么取得的IP肯定正确,
如果是地址,肯定不对
 
这个是正常的
这个函数得到的是所有的ip
 
得到的是ip
 
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
i:integer;
name:array[0..127] of char;
phe:PHostEnt;
ConsultResult:String;
pptr : PaPInAddr;
begin
:
gethostname(name,sizeof(name));
phe:=gethostbyname(name);
if phe=nil then begin showmessage('host errror');exit;end;
with phe^ do //获取本机网卡的IP地址
ConsultResult:= Format('%d.%d.%d.%d', [Byte(h_addr_list^[0]),Byte(h_addr_list^[1]), Byte(h_addr_list^[2]), Byte(h_addr_list^[3])]);
edit1.Text:=ConsultResult;

ConsultResult:='';
if phe = nil then begin showmessage('host errror');Exit;end;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^<>nil do
begin
ConsultResult:=StrPas(inet_ntoa(pptr^^)); //获取本机ADSL的IP地址
Inc(I);
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
676
import
I
后退
顶部