Sdílet prostřednictvím


Dns.GetHostEntry Metoda

Definice

Přeloží název hostitele nebo IP adresu na IPHostEntry instanci.

Přetížení

GetHostEntry(IPAddress)

Přeloží IP adresu na IPHostEntry instanci.

GetHostEntry(String)

Přeloží název hostitele nebo IP adresu na IPHostEntry instanci.

GetHostEntry(String, AddressFamily)

Přeloží název hostitele nebo IP adresu na IPHostEntry instanci.

GetHostEntry(IPAddress)

Zdroj:
Dns.cs
Zdroj:
Dns.cs
Zdroj:
Dns.cs

Přeloží IP adresu na IPHostEntry instanci.

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

Parametry

address
IPAddress

IP adresa.

Návraty

Instance IPHostEntry , která obsahuje informace o adrese hostitele zadaného v nástroji address.

Výjimky

address je null.

Při řešení chyby dojde k addresschybě .

address je neplatná IP adresa.

Příklady

Následující příklad kódu používá metodu GetHostEntry k překladu IP adresy na IPHostEntry instanci.

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

Poznámky

Metoda GetHostEntry se dotazuje serveru DNS na IP adresy a aliasy přidružené k IP adrese.

Adresy IPv6 jsou filtrovány z výsledků GetHostEntry metody, pokud místní počítač nemá nainstalovaný protokol IPv6. V důsledku toho je možné získat zpět prázdnou IPHostEntry instanci, pokud byly pro address parametr k dispozici pouze výsledky IPv6.

Vlastnost AliasesIPHostEntry vrácené instance není vyplněna touto metodou a bude vždy prázdná.

Poznámka

Tento člen generuje informace o trasování, když povolíte trasování sítě ve vaší aplikaci. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Platí pro

GetHostEntry(String)

Zdroj:
Dns.cs
Zdroj:
Dns.cs
Zdroj:
Dns.cs

Přeloží název hostitele nebo IP adresu na IPHostEntry instanci.

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

Parametry

hostNameOrAddress
String

Název hostitele nebo IP adresa, které se mají přeložit.

Návraty

Instance IPHostEntry , která obsahuje informace o adrese hostitele zadaného v nástroji hostNameOrAddress.

Výjimky

Parametr hostNameOrAddress je null.

Délka parametru hostNameOrAddress je větší než 255 znaků.

Při řešení parametru došlo k hostNameOrAddress chybě.

Parametr hostNameOrAddress je neplatná IP adresa.

Příklady

Následující příklad používá metodu GetHostEntry k překladu IP adresy na IPHostEntry instanci.

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

Poznámky

Metoda GetHostEntry se dotazuje serveru DNS na IP adresu přidruženou k názvu hostitele nebo IP adrese.

Pokud se jako hostNameOrAddress argument předá prázdný řetězec, vrátí tato metoda adresy IPv4 a IPv6 místního hostitele.

Pokud se název hostitele nepodařilo najít, SocketException vrátí se výjimka s hodnotou 11001 (chyba Windows Sockets WSAHOST_NOT_FOUND). Tuto výjimku je možné vrátit, pokud server DNS neodpoví. Tuto výjimku lze také vrátit, pokud název není oficiální název hostitele nebo alias nebo ho nelze najít v dotazovaných databázích.

Výjimka ArgumentException se vrátí také v případě, že hostNameOrAddress parametr obsahuje Any nebo IPv6Any.

Metoda GetHostEntry předpokládá, že pokud je v parametru hostNameOrAddress předán řetězec literálu IP, aplikace chce IPHostEntry vrátit instanci se všemi nastavenými vlastnostmi. Mezi tyto vlastnosti patří AddressList, Aliasesa HostName. V důsledku toho implementace GetHostEntry metody vykazuje následující chování při předání řetězcového literálu IP adresy:

  1. Metoda se pokusí analyzovat adresu. hostNameOrAddress Pokud parametr obsahuje literál právního řetězce IP, první fáze bude úspěšná.

  2. Zpětné vyhledávání s použitím IP adresy řetězcového literálu IP se pokusí získat název hostitele. Tento výsledek je nastaven jako HostName vlastnost.

  3. Název hostitele z tohoto zpětného vyhledávání se znovu použije k získání všech možných IP adres přidružených k názvu a nastaví se jako AddressList vlastnost.

U řetězcového literálu IPv4 můžou být všechny tři výše uvedené kroky úspěšné. Je ale možné vrátit zastaralý záznam DNS pro adresu IPv4, která ve skutečnosti patří jinému hostiteli. To může způsobit selhání kroku č. 3 a vyvolá výjimku (pro adresu IPv4 existuje záznam PTR DNS, ale žádný záznam DNS A pro adresu IPv4).

U protokolu IPv6 může krok č. 2 výše selhat, protože většina nasazení IPv6 neregistruje reverzní záznam (PTR) pro adresu IPv6. Tato metoda tedy může vrátit řetězcový literál IPv6 jako plně kvalifikovaný název hostitele domény (FQDN) ve HostName vlastnosti.

Metoda GetHostAddresses se s ohledem na literály PROTOKOLU IP chová jinak. Pokud výše uvedený krok č. 1 proběhne úspěšně (úspěšně se parsuje jako IP adresa), vrátí se tato adresa okamžitě jako výsledek. Neexistuje žádný pokus o zpětné vyhledávání.

Adresy IPv6 jsou filtrovány z výsledků GetHostEntry metody, pokud místní počítač nemá nainstalovaný protokol IPv6. V důsledku toho je možné získat zpět prázdnou IPHostEntry instanci, pokud jsou pro hostNameOrAddressparametr k dispozici pouze výsledky protokolu IPv6.

Vlastnost AliasesIPHostEntry vrácené instance není vyplněna touto metodou a bude vždy prázdná.

Poznámka

Tento člen generuje informace o trasování, když povolíte trasování sítě ve vaší aplikaci. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Platí pro

GetHostEntry(String, AddressFamily)

Zdroj:
Dns.cs
Zdroj:
Dns.cs
Zdroj:
Dns.cs

Přeloží název hostitele nebo IP adresu na IPHostEntry instanci.

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

Parametry

hostNameOrAddress
String

Název hostitele nebo IP adresa, které se mají přeložit.

family
AddressFamily

Rodina adres, pro kterou se mají načíst IP adresy. Pokud Unspecified, načtěte všechny IP adresy bez ohledu na rodinu adres.

Návraty

Instance IPHostEntry , která obsahuje informace o adrese hostitele zadaného v hostNameOrAddressnástroji .

Platí pro