2012-06-20 17 views
10

Sto provando ad elencare i nomi dei nomi di computer attualmente online su una rete. Sono riuscito a ottenere gli IP attivi ma non riesco a ottenere il nome computer di questi IP. Qualche idea ?Come risolvere il nome host dall'IP locale in C# .NET?

Grazie in anticipo!

+0

A seconda della rete di cui si sta parlando, le risposte seguenti non funzioneranno. Si prega di specificare di quale ambiente si sta parlando e se i computer coinvolti hanno IP pubblici. –

+0

Inoltre, OP ha richiesto "COMPUTERNAME", non il nome host, giusto? – Astyanax

+0

Sto lavorando su Windows 7 e utilizzo solo IP locali (192.168 .....) –

risposta

17

È possibile utilizzare Dns.GetHostEntry per cercare di risolvere il nome, perché non tutti i IP ha una nome.

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

Grazie mille per la tua risposta, è esattamente quello che volevo !! :) –

3

Se hai già un elenco di indirizzi IP, è possibile trovare il nome di:

+0

grazie mille :) –

Problemi correlati