Dns.GetHostEntry 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将主机名或 IP 地址解析为 IPHostEntry 实例。
重载
| 名称 | 说明 |
|---|---|
| GetHostEntry(IPAddress) |
将 IP 地址解析为 IPHostEntry 实例。 |
| GetHostEntry(String) |
将主机名或 IP 地址解析为 IPHostEntry 实例。 |
| GetHostEntry(String, AddressFamily) |
将主机名或 IP 地址解析为 IPHostEntry 实例。 |
GetHostEntry(IPAddress)
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- 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 地址。 因此,如果只有 IPv6 结果可用于IPHostEntry参数,则可能会返回空address实例。
Aliases此方法不会填充返回的IPHostEntry实例的属性,并且始终为空。
注释
在应用程序中启用网络跟踪时,此成员会发出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的 Network Tracing。
适用于
GetHostEntry(String)
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- 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 查询与主机名或 IP 地址关联的 IP 地址的 DNS 服务器。
如果空字符串作为 hostNameOrAddress 参数传递,则此方法返回本地主机的 IPv4 和 IPv6 地址。
如果找不到主机名,则会 SocketException 返回值为 11001 的异常(Windows 套接字错误WSAHOST_NOT_FOUND)。 如果 DNS 服务器没有响应,则可以返回此异常。 如果名称不是官方主机名或别名,或者无法在查询的数据库中找到该名称,也可以返回此异常。
ArgumentException如果hostNameOrAddress参数包含Any或 IPv6Any,也会返回异常。
该方法 GetHostEntry 假定,如果 IP 文本字符串传入 hostNameOrAddress 了应用程序希望 IPHostEntry 使用所有属性集返回的实例的参数中。 这些属性包括AddressList和 AliasesHostName。 因此,当传递 IP 字符串文本时,该方法的 GetHostEntry 实现将呈现以下行为:
该方法尝试分析地址。
hostNameOrAddress如果参数包含法定 IP 字符串文本,则第一阶段会成功。尝试使用 IP 字符串文本的 IP 地址进行反向查找以获取主机名。 此结果设置为 HostName 属性。
此反向查找中的主机名再次用于获取与该名称关联的所有可能的 IP 地址,并将其设置为 AddressList 属性。
对于 IPv4 字符串文本,上述所有三个步骤都可能会成功。 但是,IPv4 地址的过时 DNS 记录可能实际上属于要返回的其他主机。 这可能会导致步骤 #3 失败并引发异常(IPv4 地址有 DNS PTR 记录,但 IPv4 地址没有 DNS A 记录)。
对于 IPv6,上述步骤 #2 可能会失败,因为大多数 IPv6 部署不会为 IPv6 地址注册反向(PTR)记录。 因此,此方法可能会将字符串 IPv6 文本作为属性中的 HostName 完全限定域(FQDN)主机名返回。
该方法 GetHostAddresses 在 IP 文本方面具有不同的行为。 如果上面的步骤 #1 成功(它成功解析为 IP 地址),则会立即返回该地址。 反向查找时没有尝试。
如果本地计算机未安装 IPv6,则根据该方法的结果 GetHostEntry 筛选 IPv6 地址。 因此,如果只有 IPv6 结果可用于 IPHostEntry.parameter,则可能会返回空hostNameOrAddress实例。
Aliases此方法不会填充返回的IPHostEntry实例的属性,并且始终为空。
注释
在应用程序中启用网络跟踪时,此成员会发出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的 Network Tracing。
适用于
GetHostEntry(String, AddressFamily)
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- Dns.cs
- Source:
- 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地址信息。