我可以使用indy使用以下代码获取所有本地IP地址:
uses IdStack;
var
IPs: TStringList;
begin
IPs := TStringList.Create;
try
GStack.AddLocalAddressesToList(IPs);
listbox_localIPs.Items.Assign(IPs); //My listbox
finally
IPs.Free;
end;
end;如何为我在Indy中找到的每个IP获取适配器名称?
发布于 2014-03-27 15:20:32
印第没有提供这样的信息。您必须使用WinApi (GetAdaptersInfo,GetAdaptersAddresses)或WMI (Win32_NetworkAdapter)。
发布于 2014-03-27 18:35:38
Indy主要是一个不公开适配器信息的标准套接字API的包装器。AddLocalAddressesToList()使用特定于平台的API获取本地IP,其中一些API可能报告适配器名称(或通过其他API公开查找这些名称的方式),但AddLocalAddressesToList()只是用IP地址字符串填充TStrings,因此即使它想报告适配器名称也无法报告。
尽管如此, has recently been deprecated支持一种新的GetLocalAddressList()方法,该方法返回包含附加信息(IP版本、子网掩码)的TIdStackLocalAddress-derived对象集合。因此,将来的版本可能添加适配器名称是可行的,但这仍然是在特定平台的基础上实现的,因此可能不会在所有平台上都可用。Indy本身不需要适配器名称,所以最好直接使用特定于平台的API来获取所需的任何适配器信息。
https://stackoverflow.com/questions/22686527
复制相似问题