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


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
Исходный код:
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({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
Исходный код:
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({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 предполагает, что если строка IP-литерала передается в параметре hostNameOrAddress , который приложение хочет IPHostEntry , чтобы экземпляр возвращался со всеми наборами свойств. К этим свойствам AddressListотносятся , Aliasesи HostName. В результате реализация GetHostEntry метода демонстрирует следующее поведение при передаче строкового литерала IP-адреса:

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

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

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

Для строкового литерала IPv4 все три шага выше могут завершиться успешно. Но это возможно для устаревшей записи DNS для IPv4-адреса, который фактически принадлежит другому узлу, который будет возвращен. Это может привести к сбою шага 3 и вызову исключения (для IPv4-адреса существует запись DNS PTR, но запись 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
Исходный код:
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.

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