Delphi XE5 实现获取本地的IP地址


本文整理自网络,侵删。

 

介绍

本文章介绍了通过Delphi XE5 实现获取本地的IP地址,在使用代码之前,需要引用winsock单元,目前测试了获取IP4没问题,但是并没有测试获取IP6是否有问题,大家可以试试,有结果的可以告诉我下,谢啦

主要的获取IP地址的代码是:

function MYComputerName: string;
var
  FStr: PChar;
  FSize: Cardinal;
begin
  FSize := 255;
  GetMem(FStr, FSize);
  Winapi.Windows.GetComputerName(FStr, FSize);
  Result := FStr;
  FreeMem(FStr);
end;

function GetLocalIpList(var IpList: TStringList): Integer;
type
  TaPInAddr = array[0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  HostName: array[0..MAX_PATH] of AnsiChar;
  NameLen: Integer;
  WSData: TWSAData;
  lpHostEnt: PHostEnt;
  I: Integer;
  pptr: PaPInAddr;
begin
  Result := 0;
  if WSAStartup(MakeWord(2, 0), WSData) <> 0 then
    Exit;
  try
    NameLen := sizeof(HostName);
    fillchar(HostName, NameLen, 0);
    NameLen := GetHostName(HostName, NameLen);
    if NameLen = SOCKET_ERROR then
      Exit;
    lpHostEnt := GetHostByName(HostName);
    if lpHostEnt = nil then
      Exit;
    I := 0;
    pPtr := PaPInAddr(lpHostEnt^.h_addr_list);
    IpList.Clear;
    while pPtr^[I] <> nil do
      begin
        IpList.ADD(inet_ntoa(pptr^[I]^));
        Inc(I);
      end;
    Result := IpList.Count;
  finally
    WSACleanup;
  end;
end;

相关阅读 >>

Delphi中如何向某个ip不间断的发送数据

Delphi 时间年月日,星期

Delphi 为idhttp伪造session

Delphi 获取当前系统语言环境(en,fr,ja等)

Delphi 如何识别应用程序没有响应

Delphi实现分割文本文件的小程序

Delphi中怎样得到系统当前“输入法”名称?

Delphi getversionstring 获取文件版本信息

Delphi 汉字与区位码

Delphi 按字符串长度对tstringlist的元素进行排序

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...