Dns.GetHostEntry 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將主機名稱或 IP 位址解析為實 IPHostEntry 例。
多載
| 名稱 | Description |
|---|---|
| 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,則 IPv6 位址會從方法結果 GetHostEntry 中被過濾掉。 因此,若參數僅有 IPv6 結果,address則有可能回傳空IPHostEntry實例。
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 Sockets 錯誤 WSAHOST_NOT_FOUND)。 若 DNS 伺服器未回應,則可回傳此例外。 若該名稱非官方主機名稱或別名,或在查詢的資料庫中找不到,此例外也可回傳。
ArgumentException若hostNameOrAddress參數包含Any或IPv6Any,例外也會回傳。
此 GetHostEntry 方法假設若參數中傳遞 hostNameOrAddress IP 字串,應用程式希望回 IPHostEntry 傳一個包含所有屬性的實例。 這些性質包括 AddressList、 Aliases、 和 HostName。 因此,當傳遞 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,則 IPv6 位址會從方法結果 GetHostEntry 中被過濾掉。 因此,若 .參數僅有 hostNameOrAddressIPv6 結果,則有可能回傳空IPHostEntry實例。
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的IP地址家族。 若 Unspecified,則擷取所有 IP,不論位址家族為何。
傳回
包含 IPHostEntry 主機 hostNameOrAddress位址資訊的實例。