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-адреса:
Метод пытается проанализировать адрес.
hostNameOrAddressЕсли параметр содержит литерал строки юридического IP-адреса, первый этап завершается успешно.Обратный поиск с помощью IP-адреса строкового литерала IP-адреса пытается получить имя узла. Этот результат задается как HostName свойство.
Имя узла из этого обратного поиска снова используется для получения всех возможных 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.