Dns.GetHostEntryAsync Метод

Определение

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

Перегрузки

GetHostEntryAsync(IPAddress)

Разрешает IP-адрес экземпляра IPHostEntry как асинхронная операция.

GetHostEntryAsync(String)

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

GetHostEntryAsync(String, CancellationToken)

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

GetHostEntryAsync(String, AddressFamily, CancellationToken)

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

GetHostEntryAsync(IPAddress)

Разрешает IP-адрес экземпляра IPHostEntry как асинхронная операция.

public:
 static System::Threading::Tasks::Task<System::Net::IPHostEntry ^> ^ GetHostEntryAsync(System::Net::IPAddress ^ address);
public static System.Threading.Tasks.Task<System.Net.IPHostEntry> GetHostEntryAsync (System.Net.IPAddress address);
static member GetHostEntryAsync : System.Net.IPAddress -> System.Threading.Tasks.Task<System.Net.IPHostEntry>
Public Shared Function GetHostEntryAsync (address As IPAddress) As Task(Of IPHostEntry)

Параметры

address
IPAddress

IP-адреса.

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

Объект задачи, представляющий асинхронную операцию. Свойство Result в объекте задачи возвращает экземпляр IPHostEntry, содержащий информацию адреса об узле, указанного в address.

Исключения

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

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

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

Комментарии

Эта операция не блокируется. Возвращенный Task<TResult> объект завершится после address разрешения .

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

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

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

Примечание

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

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые GetHostEntry(IPAddress).

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

GetHostEntryAsync(String)

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

public:
 static System::Threading::Tasks::Task<System::Net::IPHostEntry ^> ^ GetHostEntryAsync(System::String ^ hostNameOrAddress);
public static System.Threading.Tasks.Task<System.Net.IPHostEntry> GetHostEntryAsync (string hostNameOrAddress);
static member GetHostEntryAsync : string -> System.Threading.Tasks.Task<System.Net.IPHostEntry>
Public Shared Function GetHostEntryAsync (hostNameOrAddress As String) As Task(Of IPHostEntry)

Параметры

hostNameOrAddress
String

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

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

Объект задачи, представляющий асинхронную операцию. Свойство Result в объекте задачи возвращает экземпляр IPHostEntry, содержащий информацию адреса об узле, указанного в hostNameOrAddress.

Исключения

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

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

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

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

Комментарии

Эта операция не блокируется. Возвращенный Task<TResult> объект завершится после hostNameOrAddress разрешения .

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

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

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

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

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

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

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

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

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

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

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

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

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

Этот метод реализуется с помощью API разрешения имен базовой операционной системы (например, API Win32 getaddrinfo в Windows и эквивалентных API на других платформах). Если узел описан в hosts файле, IP-адрес или адреса будут возвращены без запроса к DNS-серверу.

Примечание

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

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые GetHostEntry(String).

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

GetHostEntryAsync(String, CancellationToken)

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

public:
 static System::Threading::Tasks::Task<System::Net::IPHostEntry ^> ^ GetHostEntryAsync(System::String ^ hostNameOrAddress, System::Threading::CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<System.Net.IPHostEntry> GetHostEntryAsync (string hostNameOrAddress, System.Threading.CancellationToken cancellationToken);
static member GetHostEntryAsync : string * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.Net.IPHostEntry>
Public Shared Function GetHostEntryAsync (hostNameOrAddress As String, cancellationToken As CancellationToken) As Task(Of IPHostEntry)

Параметры

hostNameOrAddress
String

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

cancellationToken
CancellationToken

Токен отмены, который может быть использован для указания на отмену асинхронной операции.

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

Объект задачи, представляющий асинхронную операцию. Свойство Result объекта задачи возвращает IPHostEntry экземпляр , содержащий сведения об адресе узла, указанного в hostNameOrAddress.

Комментарии

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые GetHostEntry(String).

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

GetHostEntryAsync(String, AddressFamily, CancellationToken)

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

public static System.Threading.Tasks.Task<System.Net.IPHostEntry> GetHostEntryAsync (string hostNameOrAddress, System.Net.Sockets.AddressFamily family, System.Threading.CancellationToken cancellationToken = default);
static member GetHostEntryAsync : string * System.Net.Sockets.AddressFamily * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.Net.IPHostEntry>
Public Shared Function GetHostEntryAsync (hostNameOrAddress As String, family As AddressFamily, Optional cancellationToken As CancellationToken = Nothing) As Task(Of IPHostEntry)

Параметры

hostNameOrAddress
String

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

family
AddressFamily

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

cancellationToken
CancellationToken

Токен отмены, который может быть использован для указания на отмену асинхронной операции.

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

Объект задачи, представляющий асинхронную операцию. Свойство Result объекта задачи возвращает IPHostEntry экземпляр , содержащий сведения об адресе узла, указанного в hostNameOrAddress.

Комментарии

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые GetHostEntry(String, AddressFamily).

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