需要检测FireMonkey3下的本地IP地址。在VCL的版本,我已经使用单位的WinSock与它检测FireMonkey3下的本地IP地址
WSAStartup(...)
gethostname(...)
一个限制方法:不需要使用任何第三方库。我将ASTA组件移植到FireMonkey3平台,并且不想在组件之间进行依赖关系。
需要检测FireMonkey3下的本地IP地址。在VCL的版本,我已经使用单位的WinSock与它检测FireMonkey3下的本地IP地址
WSAStartup(...)
gethostname(...)
一个限制方法:不需要使用任何第三方库。我将ASTA组件移植到FireMonkey3平台,并且不想在组件之间进行依赖关系。
如果你需要一个跨平台解决方案尝试使用印并列入IdStack
单元
的TIdStack.AddLocalAddressesToList
方法试试这个样本
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;
如果当时没有实例化任何Indy组件,则必须在使用之前手动调用'TIdStack.IncUsage()'以确保'GStack'指针有效,然后在调用'TIdStack.DecUsage()'时调用'TIdStack.DecUsage你已经完成了。 –
@RemyLebeau这个返回只是127.0.0.1对我来说,在SDK和移动设备上,但我有通过WiFi访问网络... –
@peimanF .:你使用Android? 'AddLocalAddressesToList()'还没有在Android上实现,但应该在iOS上工作。 –
使用印这一点。 –