2012-06-20 11 views
10

Próbuję wyświetlić listę nazw komputerów aktualnie podłączonych do sieci. Udało mi się uzyskać tylko aktywne adresy IP, ale nie mogę uzyskać nazwy komputera dla tych adresów IP. Jakieś pomysły ?Jak rozwiązać nazwę hosta z lokalnego adresu IP w C# .NET?

Z góry dziękuję!

+0

W zależności od sieci, o której mówisz, poniższe odpowiedzi nie będą dla Ciebie skuteczne. Określ, o czym mówisz, i czy komputery, których to dotyczy, mają publiczne adresy IP. –

+0

Ponadto OP poprosił o "COMPUTERNAME", a nie nazwę hosta, prawda? – Astyanax

+0

Pracuję w systemie Windows 7 i tylko przy użyciu lokalnych adresów IP (192.168 .....) –

Odpowiedz

17

Można użyć Dns.GetHostEntry do spróbować rozpoznać nazwę, ponieważ nie każdy ma IP nazwa.

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

Wielkie dzięki za odpowiedź, dokładnie to, czego chciałem !! :) –

3

Jeśli masz już listę adresów IP, można znaleźć nazwę z:

+0

bardzo dziękuję :) –

Powiązane problemy