为什么我的IP地址获取不到呢?

mypqx 2009-07-09 04:34:36
通过计算机名获取IP地址

procedure TForm1.btn1Click(Sender: TObject);
var
aa:TWSAData;
host:PHostEnt;
name,bb:string;
begin
name:=edt1.Text;
WSAStartup(2,aa); //为程序是要 WS2_32.DLL初始化
host:=gethostbyname(PAnsiChar(name)); //获取IP地址
if host<>nil then
begin
with host^ do //格式化显示
bb:=Format('%d.%d.%d.%d',[byte(h_addr^[0]),byte(h_addr^[1]),byte(h_addr^[2]),byte(h_addr^[3])]);
end;
WSACleanup;
edt2.Text:=bb;
end;

为什么我输入计算机名称后获取不到IP地址,不输入计算机名称反而能够获取到呢?
...全文
629 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mypqx 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zxf_feng 的回复:]
procedure TForm1.Button1Click(Sender: TObject);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
FHostName: String;
begin
WSAStartup(2, WSAData);
HostEnt := gethostbyname(PChar(FHostName));
if HostEnt <> nil then
begin
with HostEnt^ do
showmessage(Format('%d.%d.%d.%d',[Byte(h_addr^[0]), Byte(h_addr^[1]),Byte(h_addr^[2]), Byte(h_addr^[3])]));
end;
WSAC…
[/Quote]



不好意思,忘了说一下我用的是delphi2009,我已经找到原因了

procedure TForm1.btn1Click(Sender: TObject);
var
aa:TWSAData;
host:PHostEnt;
name,bb:string;
begin
name:=edt1.Text;
WSAStartup(2,aa); //为程序是要 WS2_32.DLL初始化
procedure TForm1.btn1Click(Sender: TObject);
var
aa:TWSAData;
host:PHostEnt;
name,bb:string;
begin
name:=edt1.Text;
WSAStartup(2,aa); //为程序是要 WS2_32.DLL初始化
host:=gethostbyname(PAnsiChar(ansistring(name))); //获取IP地址
if host <>nil then
begin
with host^ do //格式化显示
bb:=Format('%d.%d.%d.%d',[byte(h_addr^[0]),byte(h_addr^[1]),byte(h_addr^[2]),byte(h_addr^[3])]);
end;
WSACleanup;
edt2.Text:=bb;
end;

问题关键在这里:

host:=gethostbyname(PAnsiChar(ansistring(name))); //获取IP地址

delphi2009就这里不一样

mypqx 2009-07-10
  • 打赏
  • 举报
回复
我可以实现啊
阿三 2009-07-10
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
FHostName: String;
begin
WSAStartup(2, WSAData);
HostEnt := gethostbyname(PChar(FHostName));
if HostEnt <> nil then
begin
with HostEnt^ do
showmessage(Format('%d.%d.%d.%d',[Byte(h_addr^[0]), Byte(h_addr^[1]),Byte(h_addr^[2]), Byte(h_addr^[3])]));
end;
WSACleanup;
end;
lsfshuai2003 2009-07-10
  • 打赏
  • 举报
回复
新手问下!
你能不能自动获取你的计算机名字啊?
mypqx 2009-07-09
  • 打赏
  • 举报
回复
输入的计算机名称没有错啊,怎么就获取不到呢
mypqx 2009-07-09
  • 打赏
  • 举报
回复
不输入计算机名称,就直接点击button怎么又能够获取到呢?
bdmh 2009-07-09
  • 打赏
  • 举报
回复
这段代码没问题,除非你的主机名称写错了
wudiralfzt2008 2009-07-09
  • 打赏
  • 举报
回复
需要引用什么单元

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧