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