Поделиться через


Dns.GetHostEntry Метод

Определение

Разрешает имя узла или IP-адрес в экземпляр IPHostEntry.

Перегрузки

GetHostEntry(IPAddress)

Разрешает IP-адрес в экземпляр IPHostEntry.

GetHostEntry(String)

Разрешает имя узла или IP-адрес в экземпляр IPHostEntry.

GetHostEntry(String, AddressFamily)

Разрешает имя узла или IP-адрес в экземпляр IPHostEntry.

GetHostEntry(IPAddress)

Исходный код:
Dns.cs
Исходный код:
Dns.cs
Исходный код:
Dns.cs

Разрешает IP-адрес в экземпляр 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

Параметры

address
IPAddress

IP-адреса.

Возвращаемое значение

Экземпляр IPHostEntry, содержащий сведения об адресе, относящиеся к узлу, указанному в параметре address.

Исключения

address имеет значение null.

При разрешении address возникает ошибка.

address является недопустимым IP-адресом.

Примеры

В следующем примере кода метод используется GetHostEntry для разрешения IP-адреса в IPHostEntry экземпляр.

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

Комментарии

Метод GetHostEntry запрашивает у DNS-сервера IP-адреса и псевдонимы, связанные с IP-адресом.

IPv6-адреса фильтруются по результатам метода, GetHostEntry если на локальном компьютере не установлен протокол IPv6. В результате можно вернуть пустой IPHostEntry экземпляр, если для address параметра были доступны только результаты IPv6.

Свойство Aliases возвращаемого экземпляра IPHostEntry не заполняется этим методом и всегда будет пустым.

Примечание

Этот элемент выдает сведения трассировки при включении трассировки сети в приложении. Дополнительные сведения см. в статье Трассировка сети в .NET Framework.

Применяется к

GetHostEntry(String)

Исходный код:
Dns.cs
Исходный код:
Dns.cs
Исходный код:
Dns.cs

Разрешает имя узла или IP-адрес в экземпляр 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

Параметры

hostNameOrAddress
String

Разрешаемое имя узла или IP-адрес.

Возвращаемое значение

Экземпляр IPHostEntry, содержащий сведения об адресе, относящиеся к узлу, указанному в параметре hostNameOrAddress.

Исключения

Параметр hostNameOrAddress имеет значение null.

Длина параметра hostNameOrAddress превышает 255 символов.

При попытке разрешения параметра hostNameOrAddress произошла ошибка.

Параметр hostNameOrAddress является недопустимым IP-адресом.

Примеры

В следующем примере метод используется GetHostEntry для разрешения IP-адреса в экземпляр.IPHostEntry

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

Комментарии

Метод GetHostEntry запрашивает у DNS-сервера IP-адрес, связанный с именем узла или IP-адресом.

Если в качестве аргумента hostNameOrAddress передается пустая строка, этот метод возвращает адреса IPv4 и IPv6 локального узла.

Если не удалось найти имя узла, SocketException возвращается исключение со значением 11001 (ошибка сокетов Windows WSAHOST_NOT_FOUND). Это исключение может быть возвращено, если DNS-сервер не отвечает. Это исключение также может быть возвращено, если имя не является официальным именем узла или псевдонимом или его не удается найти в запрашиваемых базах данных.

Исключение ArgumentException также возвращается, hostNameOrAddress если параметр содержит Any или IPv6Any.

Метод GetHostEntry предполагает, что если в hostNameOrAddress параметре передается строка IP-литерала, приложение хочет IPHostEntry вернуть экземпляр со всеми заданными свойствами. К этим свойствам AddressListотносятся , Aliasesи HostName. В результате реализация метода демонстрирует следующее GetHostEntry поведение при передаче строкового ip-литерала:

  1. Метод пытается проанализировать адрес. hostNameOrAddress Если параметр содержит юридический строковый литерал IP-адреса, первый этап завершается успешно.

  2. Обратный просмотр с использованием IP-адреса строкового литерала IP-адреса пытается получить имя узла. Этот результат задается как HostName свойство .

  3. Имя узла из этого обратного просмотра используется снова, чтобы получить все возможные IP-адреса, связанные с именем, и задать в AddressList качестве свойства .

Для строкового литерала IPv4 все три описанных выше шага могут быть успешными. Но можно вернуть устаревшую запись DNS для IPv4-адреса, который фактически принадлежит другому узлу. Это может привести к сбою шага 3 и возникновению исключения (существует запись DNS PTR для IPv4-адреса, но нет записи DNS A для IPv4-адреса).

Для IPv6, шаг 2 выше, может завершиться ошибкой, так как большинство развертываний IPv6 не регистрируют обратную запись (PTR) для IPv6-адреса. Таким образом, этот метод может возвращать строковый литерал IPv6 в качестве полного имени узла домена (FQDN) в свойстве HostName .

Метод GetHostAddresses отличается по отношению к IP-литералам. Если шаг 1 выше завершается успешно (он успешно анализируется как IP-адрес), этот адрес немедленно возвращается в качестве результата. Обратный просмотр не выполняется.

IPv6-адреса фильтруются по результатам метода, GetHostEntry если на локальном компьютере не установлен протокол IPv6. В результате можно вернуть пустой IPHostEntry экземпляр, если только результаты IPv6 доступны для hostNameOrAddressпараметра .

Свойство Aliases возвращаемого экземпляра IPHostEntry не заполняется этим методом и всегда будет пустым.

Примечание

Этот элемент выдает сведения трассировки при включении трассировки сети в приложении. Дополнительные сведения см. в статье Трассировка сети в .NET Framework.

Применяется к

GetHostEntry(String, AddressFamily)

Исходный код:
Dns.cs
Исходный код:
Dns.cs
Исходный код:
Dns.cs

Разрешает имя узла или IP-адрес в экземпляр 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

Параметры

hostNameOrAddress
String

Разрешаемое имя узла или IP-адрес.

family
AddressFamily

Семейство адресов, для которого должны быть получены IP-адреса. Если Unspecifiedзадано значение , получите все IP-адреса независимо от семейства адресов.

Возвращаемое значение

Экземпляр IPHostEntry , содержащий сведения об адресе узла, указанного в hostNameOrAddress.

Применяется к