在FireMonkey3下检测本地IP地址

时间:2013-12-13 13:48:21

标签: delphi firemonkey-fm3 wsastartup

需要在FireMonkey3下检测本地IP地址。在VCL版本中,我一直在使用 WinSock 单元及其方法

WSAStartup(...)
gethostname(...)

一个限制:不需要使用任何第三方库。我正在将ASTA组件移植到FireMonkey3平台,并且不希望在组件之间进行依赖。

1 个答案:

答案 0 :(得分:9)

如果您需要跨平台解决方案,请尝试使用Indy和TIdStack.AddLocalAddressesToList单元中包含的IdStack方法

试试这个样本

var
  AAddresses: TStrings;
begin
  AAddresses := TStringList.Create;
  try
    TIdStack.IncUsage;
    try
      GStack.AddLocalAddressesToList(AAddresses);
    finally
      TIdStack.DecUsage;
    end;
    if AAddresses.Count > 0 then
      //do something
  finally
    AAddresses.Free;
  end;
end;