2012-06-20 21 views
10

Estoy tratando de enumerar los nombres de los nombres de computadora actualmente en línea en una red. Solo logré obtener las direcciones IP activas pero no puedo obtener el nombre de la computadora de estas IP. Algunas ideas ?Cómo resolver el nombre de host de la IP local en C# .NET?

¡Gracias de antemano!

+0

Dependiendo de la red de la que esté hablando, las respuestas a continuación no funcionarán para usted. Especifique de qué entorno está hablando y si las computadoras involucradas tienen IP públicas. –

+0

Además, OP pidió "COMPUTERNAME", no nombre de host, ¿verdad? – Astyanax

+0

Estoy trabajando en Windows 7 y usando solo direcciones IP locales (192.168 .....) –

Respuesta

17

Puede utilizar Dns.GetHostEntry a tratar para resolver el nombre, porque no todos los IP tiene una nombre.

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

Muchas gracias por su respuesta, ¡es exactamente lo que quería! :) –

3

Si ya tiene una lista de direcciones IP, puede encontrar el nombre de:

+0

muchas gracias :) –

Cuestiones relacionadas