Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 6119|回复: 7

Lazarus怎么取得本机的IP号

[复制链接]

该用户从未签到

发表于 2011-8-18 14:47:36 | 显示全部楼层 |阅读模式
现在需要取得本机的IP 可以是局域网的,也可以是外网IP,求达人给出方法,不胜感激!
回复

使用道具 举报

该用户从未签到

发表于 2011-8-18 15:56:20 | 显示全部楼层
function GetLocalIP: string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
result:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-9-15 14:31:21 | 显示全部楼层

回 1楼(artpaper123) 的帖子

好用 谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-27 21:33:27 | 显示全部楼层
dff   
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-27 22:49:46 | 显示全部楼层
Lazarus社区有你更精彩!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-5-26 12:40:26 | 显示全部楼层
呵呵~ 关注一下。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-9-6 10:22:47 | 显示全部楼层
谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-9-6 12:59:32 | 显示全部楼层
补充:一、要引用 Winsock 单元;
      二、while pptr^[I] <> nil do begin 这句在Lazarus V1.0.10中无法编译通过;
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 10:51 , Processed in 0.102949 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表