3

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

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

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

4

1 回答 1

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;
于 2013-12-13T14:17:36.533 回答