Condividi tramite


Dns.GetHostEntry Metodo

Definizione

Risolve un nome host o un indirizzo IP in un'istanza di IPHostEntry.

Overload

GetHostEntry(IPAddress)

Risolve un indirizzo IP in un'istanza di IPHostEntry.

GetHostEntry(String)

Risolve un nome host o un indirizzo IP in un'istanza di IPHostEntry.

GetHostEntry(String, AddressFamily)

Risolve un nome host o un indirizzo IP in un'istanza di IPHostEntry.

GetHostEntry(IPAddress)

Origine:
Dns.cs
Origine:
Dns.cs
Origine:
Dns.cs

Risolve un indirizzo IP in un'istanza di IPHostEntry.

public:
 static System::Net::IPHostEntry ^ GetHostEntry(System::Net::IPAddress ^ address);
public static System.Net.IPHostEntry GetHostEntry (System.Net.IPAddress address);
static member GetHostEntry : System.Net.IPAddress -> System.Net.IPHostEntry
Public Shared Function GetHostEntry (address As IPAddress) As IPHostEntry

Parametri

address
IPAddress

Indirizzo IP.

Restituisce

Istanza di IPHostEntry contenente informazioni di indirizzo sull'host specificato in address.

Eccezioni

address è null.

Si è verificato un errore durante la risoluzione del parametro address.

address è un indirizzo IP non valido.

Esempio

Nell'esempio di codice seguente viene usato il GetHostEntry metodo per risolvere un indirizzo IP in un'istanza IPHostEntry di .

public:
    static void DoGetHostEntry(IPAddress^ address)
    {
        IPHostEntry^ host = Dns::GetHostEntry(address);

        Console::WriteLine("GetHostEntry({0}) returns HostName: {1}", address->ToString(), host->HostName);
    }
public static void DoGetHostEntry(IPAddress address)
{
    IPHostEntry host = Dns.GetHostEntry(address);

    Console.WriteLine($"GetHostEntry({address}) returns HostName: {host.HostName}");
}
Public Sub DoGetHostEntry(address As IPAddress)

    Dim host as IPHostEntry = Dns.GetHostEntry(address)

    Console.WriteLine($"GetHostEntry({address}) returns HostName: {host.HostName}")

End Sub

Commenti

Il GetHostEntry metodo esegue una query su un server DNS per gli indirizzi IP e gli alias associati a un indirizzo IP.

Gli indirizzi IPv6 vengono filtrati in base ai risultati del GetHostEntry metodo se nel computer locale non è installato IPv6. Di conseguenza, è possibile recuperare un'istanza vuota IPHostEntry se per il address parametro sono disponibili solo i risultati IPv6.

La Aliases proprietà dell'istanza IPHostEntry restituita non viene popolata da questo metodo e sarà sempre vuota.

Nota

Questo membro genera informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Si applica a

GetHostEntry(String)

Origine:
Dns.cs
Origine:
Dns.cs
Origine:
Dns.cs

Risolve un nome host o un indirizzo IP in un'istanza di IPHostEntry.

public:
 static System::Net::IPHostEntry ^ GetHostEntry(System::String ^ hostNameOrAddress);
public static System.Net.IPHostEntry GetHostEntry (string hostNameOrAddress);
static member GetHostEntry : string -> System.Net.IPHostEntry
Public Shared Function GetHostEntry (hostNameOrAddress As String) As IPHostEntry

Parametri

hostNameOrAddress
String

Nome dell'host o indirizzo IP da risolvere.

Restituisce

Istanza di IPHostEntry contenente informazioni di indirizzo sull'host specificato in hostNameOrAddress.

Eccezioni

Il valore del parametro hostNameOrAddress è null.

La lunghezza del parametro hostNameOrAddress supera i 255 caratteri.

Si è verificato un errore nella risoluzione del parametro hostNameOrAddress.

Il parametro hostNameOrAddress è un indirizzo IP non valido.

Esempio

Nell'esempio seguente viene usato il GetHostEntry metodo per risolvere un indirizzo IP in un'istanza IPHostEntry di .

public:
    static void DoGetHostEntry(String^ hostname)
    {
        IPHostEntry^ host = Dns::GetHostEntry(hostname);

        Console::WriteLine("GetHostEntry({0}) returns:", host->HostName);

        for (int i = 0; i < host->AddressList->Length; i++)
        {
            Console::WriteLine("    {0}", host->AddressList[i]->ToString());			
        }
    }
public static void DoGetHostEntry(string hostname)
{
    IPHostEntry host = Dns.GetHostEntry(hostname);

    Console.WriteLine($"GetHostEntry({hostname}) returns:");

    foreach (IPAddress address in host.AddressList)
    {
        Console.WriteLine($"    {address}");
    }
}
Public Sub DoGetHostEntry(hostName As String)

    Dim host as IPHostEntry = Dns.GetHostEntry(hostname)

    Console.WriteLine($"GetHostEntry({hostname}) returns:")

    Dim addresses As IPAddress() = host.AddressList

    Dim index As Integer
    For index = 0 To addresses.Length - 1
        Console.WriteLine($"    {addresses(index)}")
    Next index

End Sub

Commenti

Il GetHostEntry metodo esegue una query su un server DNS per l'indirizzo IP associato a un nome host o a un indirizzo IP.

Se come argomento viene passata hostNameOrAddress una stringa vuota, questo metodo restituisce gli indirizzi IPv4 e IPv6 dell'host locale.

Se non è stato possibile trovare il nome host, l'eccezione SocketException viene restituita con un valore 11001 (errore Windows Sockets WSAHOST_NOT_FOUND). Questa eccezione può essere restituita se il server DNS non risponde. Questa eccezione può essere restituita anche se il nome non è un nome host o un alias ufficiale oppure non è possibile trovarlo nei database su cui viene eseguita la query.

L'eccezione ArgumentException viene restituita anche se il hostNameOrAddress parametro contiene Any o IPv6Any.

Il GetHostEntry metodo presuppone che se viene passata una stringa letterale IP nel hostNameOrAddress parametro che l'applicazione desidera restituire un'istanza IPHostEntry con tutte le proprietà impostate. Queste proprietà includono AddressList, Aliasese HostName. Di conseguenza, l'implementazione del GetHostEntry metodo mostra il comportamento seguente quando viene passato un valore letterale stringa IP:

  1. Il metodo tenta di analizzare l'indirizzo. Se il hostNameOrAddress parametro contiene un valore letterale stringa IP legale, la prima fase ha esito positivo.

  2. Viene tentata una ricerca inversa usando l'indirizzo IP del valore letterale stringa IP per ottenere il nome host. Questo risultato viene impostato come HostName proprietà .

  3. Il nome host di questa ricerca inversa viene usato di nuovo per ottenere tutti gli indirizzi IP possibili associati al nome e impostare come AddressList proprietà.

Per un valore letterale stringa IPv4, è possibile che tutti e tre i passaggi precedenti abbiano esito positivo. È tuttavia possibile che venga restituito un record DNS non aggiornato per un indirizzo IPv4 che appartiene effettivamente a un host diverso. Questo può causare l'esito negativo del passaggio 3 e generare un'eccezione (esiste un record PTR DNS per l'indirizzo IPv4, ma nessun record DNS A per l'indirizzo IPv4).

Per IPv6, il passaggio 2 precedente potrebbe non riuscire, poiché la maggior parte delle distribuzioni IPv6 non registra il record inverso (PTR) per un indirizzo IPv6. Questo metodo può quindi restituire il valore letterale IPv6 stringa come nome host di dominio completo (FQDN) nella HostName proprietà .

Il GetHostAddresses metodo ha un comportamento diverso rispetto ai valori letterali IP. Se il passaggio 1 precedente ha esito positivo (analizza correttamente come indirizzo IP), tale indirizzo viene restituito immediatamente come risultato. Non è previsto alcun tentativo di ricerca inversa.

Gli indirizzi IPv6 vengono filtrati in base ai risultati del GetHostEntry metodo se nel computer locale non è installato IPv6. Di conseguenza, è possibile tornare a un'istanza vuota IPHostEntry se viene restituito solo i risultati IPv6, se disponibili per il hostNameOrAddressparametro .

La Aliases proprietà dell'istanza IPHostEntry restituita non viene popolata da questo metodo e sarà sempre vuota.

Nota

Questo membro genera informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Si applica a

GetHostEntry(String, AddressFamily)

Origine:
Dns.cs
Origine:
Dns.cs
Origine:
Dns.cs

Risolve un nome host o un indirizzo IP in un'istanza di IPHostEntry.

public:
 static System::Net::IPHostEntry ^ GetHostEntry(System::String ^ hostNameOrAddress, System::Net::Sockets::AddressFamily family);
public static System.Net.IPHostEntry GetHostEntry (string hostNameOrAddress, System.Net.Sockets.AddressFamily family);
static member GetHostEntry : string * System.Net.Sockets.AddressFamily -> System.Net.IPHostEntry
Public Shared Function GetHostEntry (hostNameOrAddress As String, family As AddressFamily) As IPHostEntry

Parametri

hostNameOrAddress
String

Nome dell'host o indirizzo IP da risolvere.

family
AddressFamily

Famiglia di indirizzi per cui devono essere recuperati gli indirizzi IP. Se Unspecified, recuperare tutti gli indirizzi IP indipendentemente dalla famiglia di indirizzi.

Restituisce

IPHostEntry Istanza che contiene le informazioni sull'indirizzo sull'host specificato in hostNameOrAddress.

Si applica a