+ -
当前位置:首页 → 问答吧 → 求讲解

求讲解

时间:2011-09-03

来源:互联网

Delphi(Pascal) code

function   NetGetLocalIP(var   LocalIp:   string):   Boolean;
var
        HostEnt:   PHostEnt;
        Ip:   string;
        addr:   pchar;
        Buffer:   array   [0..63]   of   char;
        GInitData:   TWSADATA;
begin
    Result   :=   False;
    try
        WSAStartup(2,   GInitData);
        GetHostName(Buffer,   SizeOf(Buffer));
        HostEnt   :=   GetHostByName(buffer);
        if   HostEnt   =   nil   then   Exit;
        addr   :=   HostEnt^.h_addr_list^;
        ip   :=   Format( '%d.%d.%d.%d ',   [byte(addr   [0]),
                    byte   (addr   [1]),   byte   (addr   [2]),   byte   (addr   [3])]);
        LocalIp   :=   Ip;
        Result   :=   True;
    finally
        WSACleanup;
    end;
end;


在网上找到获取局域网IP的方法,但是要传参数,返回类型是BOOLEAN。看到有点糊涂,
怎么能得到的局域网IP呢??求讲解使用方法。

作者: SF_harry   发布时间: 2011-09-03

这个是获取本机的IP地址

作者: yushf   发布时间: 2011-09-03

我知道是获取本机IP的,但是怎么使用呢?
麻烦举个例子

作者: SF_harry   发布时间: 2011-09-03

var
  localip: string;
begin
  if NetGetLocalIP(localip) then
  MessageBoxA(0, @localip[1], nil, 0)
  else
  MessageBox(0, '失败', nil, 0);
end;

作者: yushf   发布时间: 2011-09-03

不明白你的意思

作者: yushf   发布时间: 2011-09-03

就是我想取本地局域网的IP ,但是返回值是BOOLEN不是我想要的。
怎么样实现我要的?

作者: SF_harry   发布时间: 2011-09-03

而且看这个函数,返回值为true,为什么要这么写?
麻烦顺便讲解下

作者: SF_harry   发布时间: 2011-09-03

这个函数压根没这个功能

作者: yushf   发布时间: 2011-09-03

GetHostName(Buffer, SizeOf(Buffer)); // 获取本机的名字
HostEnt := GetHostByName(buffer); // 根据名字获取IP

作者: yushf   发布时间: 2011-09-03

热门下载

更多