Dns.GetHostEntry Metoda

Definicja

Rozpoznaje nazwę hosta lub adres IP do wystąpienia IPHostEntry.Resolves a host name or IP address to an IPHostEntry instance.

Przeciążenia

GetHostEntry(IPAddress)

Rozwiązuje adres IP do wystąpienia IPHostEntry.Resolves an IP address to an IPHostEntry instance.

GetHostEntry(String)

Rozpoznaje nazwę hosta lub adres IP do wystąpienia IPHostEntry.Resolves a host name or IP address to an IPHostEntry instance.

GetHostEntry(IPAddress)

Rozwiązuje adres IP do wystąpienia IPHostEntry.Resolves an IP address to an IPHostEntry instance.

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

Adres IP.An IP address.

Zwraca

Wystąpienie IPHostEntry, które zawiera informacje o adresie hosta określonym w address.An IPHostEntry instance that contains address information about the host specified in address.

Wyjątki

Parametr address ma wartość null.address is null.

Wystąpił błąd podczas rozpoznawania address.An error is encountered when resolving address.

address jest nieprawidłowym adresem IP.address is an invalid IP address.

Przykłady

Poniższy przykład kodu używa metody GetHostEntry, aby rozpoznać adres IP do wystąpienia IPHostEntry.The following code example uses the GetHostEntry method to resolve an IP address to an IPHostEntry instance.

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

Uwagi

Metoda GetHostEntry wysyła zapytanie do serwera DNS o adresy IP i aliasy skojarzone z adresem IP.The GetHostEntry method queries a DNS server for the IP addresses and aliases associated with an IP address.

Adresy IPv6 są filtrowane z wyników metody GetHostEntry, jeśli na komputerze lokalnym nie zainstalowano protokołu IPv6.IPv6 addresses are filtered from the results of the GetHostEntry method if the local computer does not have IPv6 installed. W związku z tym istnieje możliwość przywrócenia pustego wystąpienia IPHostEntry, jeśli dla parametru address były dostępne tylko wyniki IPv6.As a result, it is possible to get back an empty IPHostEntry instance if only IPv6 results were available for the address parameter.

Właściwość Aliases zwróconego wystąpienia IPHostEntry nie jest wypełniona przez tę metodę i zawsze będzie pusta.The Aliases property of the IPHostEntry instance returned is not populated by this method and will always be empty.

Uwaga

Ten element członkowski emituje informacje o śledzeniu po włączeniu śledzenia sieci w aplikacji.This member emits trace information when you enable network tracing in your application. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.For more information, see Network Tracing in the .NET Framework.

GetHostEntry(String)

Rozpoznaje nazwę hosta lub adres IP do wystąpienia IPHostEntry.Resolves a host name or IP address to an IPHostEntry instance.

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

Nazwa hosta lub adres IP do rozwiązania.The host name or IP address to resolve.

Zwraca

Wystąpienie IPHostEntry, które zawiera informacje o adresie hosta określonym w hostNameOrAddress.An IPHostEntry instance that contains address information about the host specified in hostNameOrAddress.

Wyjątki

Parametr hostNameOrAddress ma wartość null.The hostNameOrAddress parameter is null.

Długość parametru hostNameOrAddress jest większa niż 255 znaków.The length of hostNameOrAddress parameter is greater than 255 characters.

Wystąpił błąd podczas rozpoznawania parametru hostNameOrAddress.An error was encountered when resolving the hostNameOrAddress parameter.

Parametr hostNameOrAddress jest nieprawidłowym adresem IP.The hostNameOrAddress parameter is an invalid IP address.

Przykłady

W poniższym przykładzie zastosowano metodę GetHostEntry, aby rozwiązać adres IP do wystąpienia IPHostEntry.The following example uses the GetHostEntry method to resolve an IP address to an IPHostEntry instance.

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

Uwagi

Metoda GetHostEntry wysyła zapytanie do serwera DNS o adres IP skojarzony z nazwą hosta lub adresem IP.The GetHostEntry method queries a DNS server for the IP address that is associated with a host name or IP address.

Jeśli pusty ciąg jest przenoszona jako argument hostNameOrAddress, Metoda ta zwraca adresy IPv4 i IPv6 hosta lokalnego.If an empty string is passed as the hostNameOrAddress argument, then this method returns the IPv4 and IPv6 addresses of the local host.

Jeśli nazwa hosta nie została znaleziona, wyjątek SocketException jest zwracany z wartością 11001 (WSAHOST_NOT_FOUND Windows Sockets error).If the host name could not be found, the SocketException exception is returned with a value of 11001 (Windows Sockets error WSAHOST_NOT_FOUND). Ten wyjątek może być zwracany, jeśli serwer DNS nie odpowiada.This exception can be returned if the DNS server does not respond. Ten wyjątek może być również zwracany, jeśli nazwa nie jest oficjalną nazwą hosta lub aliasem lub nie można jej znaleźć w bazie danych, której dotyczy kwerenda.This exception can also be returned if the name is not an official host name or alias, or it cannot be found in the database(s) being queried.

Wyjątek ArgumentException jest również zwracany, jeśli parametr hostNameOrAddress zawiera Any lub IPv6Any.The ArgumentException exception is also returned if the hostNameOrAddress parameter contains Any or IPv6Any.

Metoda GetHostEntry zakłada, że jeśli ciąg literału IP zostanie przekazana w parametrze hostNameOrAddress, że aplikacja chce, aby wystąpienie IPHostEntry zostało zwrócone ze wszystkimi ustawionymi właściwościami.The GetHostEntry method assumes that if an IP literal string is passed in the hostNameOrAddress parameter that the application wants an IPHostEntry instance returned with all of the properties set. Te właściwości obejmują AddressList, Aliasesi HostName.These properties include the AddressList, Aliases, and HostName. W związku z tym implementacja metody GetHostEntry wykazuje następujące zachowanie podczas przekazywania literału ciągu IP:As a result, the implementation of the GetHostEntry method exhibits the following behavior when an IP string literal is passed:

  1. Metoda próbuje przeanalizować adres.The method tries to parse the address. Jeśli parametr hostNameOrAddress zawiera dozwolony literał ciągu IP, Pierwsza faza powiedzie się.If the hostNameOrAddress parameter contains a legal IP string literal, then the first phase succeeds.

  2. Wyszukiwanie wsteczne przy użyciu adresu IP literału ciągu IP próbuje uzyskać nazwę hosta.A reverse lookup using the IP address of the IP string literal is attempted to obtain the host name. Ten wynik jest ustawiany jako właściwość HostName.This result is set as the HostName property.

  3. Nazwa hosta z tego wyszukiwania wstecznego jest używana ponownie, aby uzyskać wszystkie możliwe adresy IP skojarzone z nazwą i ustawić ją jako właściwość AddressList.The host name from this reverse lookup is used again to obtain all the possible IP addresses associated with the name and set as the AddressList property.

W przypadku literału ciągu IPv4 wszystkie trzy kroki mogą się powieść.For an IPv4 string literal, all three steps above may succeed. Ale istnieje możliwość, że rekord DNS jest nieodświeżony dla adresu IPv4, który faktycznie należy do innego hosta, który ma zostać zwrócony.But it is possible for a stale DNS record for an IPv4 address that actually belongs to a different host to be returned. Może to spowodować, że krok #3 nie powiedzie się i zgłosi wyjątek (istnieje rekord PTR systemu DNS dla adresu IPv4, ale nie rekord DNS A dla adresu IPv4).This may cause step #3 to fail and throw an exception (there is a DNS PTR record for the IPv4 address, but no DNS A record for the IPv4 address).

W przypadku protokołu IPv6 krok #2 powyżej może zakończyć się niepowodzeniem, ponieważ większość wdrożeń IPv6 nie rejestruje rekordu reversa (PTR) dla adresu IPv6.For IPv6, step #2 above may fail, since most IPv6 deployments do not register the reverse (PTR) record for an IPv6 address. Dlatego ta metoda może zwrócić literał ciągu IPv6 jako w pełni kwalifikowana nazwa hosta (FQDN) w właściwości HostName.So this method may return the string IPv6 literal as the fully-qualified domain (FQDN) host name in the HostName property.

Metoda GetHostAddresses ma inne zachowanie w odniesieniu do literałów IP.The GetHostAddresses method has different behavior with respect to IP literals. Jeśli krok #1 powyżej zostanie pomyślnie przeanalizowany jako adres IP, ten adres zostanie natychmiast zwrócony jako wynik.If step #1 above succeeds (it successfully parses as an IP address), that address is immediately returned as the result. Wyszukiwanie wsteczne nie ma żadnej próby.There is no attempt at a reverse lookup.

Adresy IPv6 są filtrowane z wyników metody GetHostEntry, jeśli na komputerze lokalnym nie zainstalowano protokołu IPv6.IPv6 addresses are filtered from the results of the GetHostEntry method if the local computer does not have IPv6 installed. W związku z tym istnieje możliwość przywrócenia pustego wystąpienia IPHostEntry, jeśli są dostępne tylko wyniki protokołu IPv6 dla hostNameOrAddress. Parameter.As a result, it is possible to get back an empty IPHostEntry instance if only IPv6 results where available for the hostNameOrAddress.parameter.

Właściwość Aliases zwróconego wystąpienia IPHostEntry nie jest wypełniona przez tę metodę i zawsze będzie pusta.The Aliases property of the IPHostEntry instance returned is not populated by this method and will always be empty.

Uwaga

Ten element członkowski emituje informacje o śledzeniu po włączeniu śledzenia sieci w aplikacji.This member emits trace information when you enable network tracing in your application. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.For more information, see Network Tracing in the .NET Framework.

Dotyczy