共用方式為


Dns.GetHostEntry 方法

定義

將主機名稱或 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的實例。

例外狀況

addressnull

當解析 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的實例。

例外狀況

參數 hostNameOrAddressnull

參數長度 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 伺服器未回應,則可回傳此例外。 若該名稱非官方主機名稱或別名,或在查詢的資料庫中找不到,此例外也可回傳。

ArgumentExceptionhostNameOrAddress參數包含AnyIPv6Any,例外也會回傳。

GetHostEntry 方法假設若參數中傳遞 hostNameOrAddress IP 字串,應用程式希望回 IPHostEntry 傳一個包含所有屬性的實例。 這些性質包括 AddressListAliases、 和 HostName。 因此,當傳遞 IP 字串字面值時,該方法的實作 GetHostEntry 會呈現以下行為:

  1. 該方法嘗試解析該位址。 如果參數 hostNameOrAddress 包含合法的 IP 字串字面值,則第一階段成功。

  2. 嘗試利用 IP 字串字面值的 IP 位址進行反向查詢以取得主機名稱。 此結果被設定為屬性 HostName

  3. 此反向查詢的主機名稱再次被用來取得所有可能與該名稱相關的 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位址資訊的實例。

適用於