2012-06-20 55 views
10

我正在嘗試列出當前在網絡上聯機的計算機名稱的名稱。我只設法獲得獲取活動IP,但我無法獲取這些IP的計算機名稱。有任何想法嗎 ?如何從C#.NET中的本地IP解析主機名?

在此先感謝!

+0

根據你在說什麼網絡下面的答案不適合你。請說明你在說什麼環境,以及涉及的計算機是否有公共IP。 –

+0

另外,OP要求輸入「COMPUTERNAME」,而不是主機名,對嗎? – Astyanax

+0

我正在使用Windows 7並僅使用本地IP(192.168 .....) –

回答

17

您可以使用Dns.GetHostEntry嘗試來解析名稱,因爲不是每個IP擁有名稱

using System.Net; 
... 

public string GetHostName(string ipAddress) 
{ 
    try 
    { 
     IPHostEntry entry = Dns.GetHostEntry(ipAddress); 
     if (entry != null) 
     { 
      return entry.HostName; 
     } 
    } 
    catch (SocketException ex) 
    { 
     //unknown host or 
     //not every IP has a name 
     //log exception (manage it) 
    } 

    return null; 
} 
+0

非常感謝您的回答,這正是我想要的! :) –

3

如果你已經有了IP不會忽略列表,你可以找到一個名爲:

+0

非常感謝:) –