2014-03-27 41 views
0

我可以使用此代碼與印地獲取所有本地IP地址:如何使用Indy獲取適配器名稱?

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; 

我怎樣才能得到適配器名稱每個IP我發現印?

回答

2

Indy主要是標準套接字API的封裝,它不公開適配器信息。 AddLocalAddressesToList()使用特定於平臺的API來獲取本地IP,並且其中一些API可能會報告適配器名稱(或者公開通過其他API查找這些名稱的方式),但AddLocalAddressesToList()只是使用IP地址字符串填充TStrings,所以它沒有報告適配器名稱的方式,即使它想要。

隨着中說,AddLocalAddressesToList() has recently been deprecated贊成新GetLocalAddressList()方法,它返回一個包含附加信息(IP版本,子網掩碼)TIdStackLocalAddress衍生的對象的集合的。因此未來版本可能會添加適配器名稱是可行的,但這仍將在特定於平臺的基礎上實現,因此可能無法在所有平臺上使用。 Indy本身並不需要適配器名稱,因此您最好直接使用特定於平臺的API直接獲取所需的任何適配器信息。

相關問題