Бөлісу құралы:


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)

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

Разрешает 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 экземпляр, если только результаты IPv6 доступны для address параметра.

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

Примечание

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

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

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

GetHostEntryAsync(String)

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

Разрешает имя узла или 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 WSAHOST_NOT_FOUND). Это исключение может быть возвращено, если DNS-сервер не отвечает. Это исключение также может быть возвращено, если имя не является официальным именем узла или псевдонимом или его не удается найти в запрашиваемых базах данных.

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

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

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

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

Примечание

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

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

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

GetHostEntryAsync(String, CancellationToken)

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

Разрешает имя узла или 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)

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

Разрешает имя узла или 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).

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