次の方法で共有


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 アドレス。

戻り値

addressで指定されたホストに関するアドレス情報を格納しているIPHostEntry インスタンス。

例外

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 がインストールされていない場合は、 GetHostEntry メソッドの結果から IPv6 アドレスがフィルター処理されます。 その結果、address パラメーターで IPv6 の結果しか使用できなかった場合は、空の IPHostEntry インスタンスを取得できます。

返されるIPHostEntry インスタンスのAliases プロパティは、このメソッドによって設定されず、常に空になります。

このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「 .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 アドレス。

戻り値

hostNameOrAddressで指定されたホストに関するアドレス情報を格納しているIPHostEntry インスタンス。

例外

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 サーバーが応答しない場合に返される可能性があります。 この例外は、名前が公式のホスト名またはエイリアスでない場合、またはクエリ対象のデータベースで見つからない場合にも返されます。

hostNameOrAddress パラメーターにAnyまたはIPv6Anyが含まれている場合は、ArgumentException例外も返されます。

GetHostEntry メソッドは、IP リテラル文字列が hostNameOrAddress パラメーターに渡された場合、アプリケーションがすべてのプロパティ セットでIPHostEntry インスタンスを返す必要があることを前提としています。 これらのプロパティには、 AddressListAliases、および HostNameが含まれます。 その結果、ip 文字列リテラルが渡されると、 GetHostEntry メソッドの実装は次の動作を示します。

  1. このメソッドはアドレスの解析を試みます。 hostNameOrAddress パラメーターに有効な IP 文字列リテラルが含まれている場合、最初のフェーズは成功します。

  2. IP 文字列リテラルの IP アドレスを使用した逆引き参照が、ホスト名の取得を試みます。 この結果は、 HostName プロパティとして設定されます。

  3. この逆引き参照のホスト名を再度使用して、名前に関連付けられた使用可能なすべての IP アドレスを取得し、 AddressList プロパティとして設定します。

IPv4 文字列リテラルの場合、上記の 3 つの手順はすべて成功する可能性があります。 ただし、実際に別のホストに属している IPv4 アドレスの古い DNS レコードが返される可能性があります。 これにより、手順 3 でエラーが発生し、例外がスローされる可能性があります (IPv4 アドレスには DNS PTR レコードがありますが、IPv4 アドレスの DNS A レコードはありません)。

IPv6 の場合、ほとんどの IPv6 デプロイでは IPv6 アドレスの逆引き (PTR) レコードが登録されないため、上記の手順 2 が失敗する可能性があります。 そのため、このメソッドは、 HostName プロパティの完全修飾ドメイン (FQDN) ホスト名として文字列 IPv6 リテラルを返す場合があります。

GetHostAddressesメソッドは、IP リテラルに関して動作が異なります。 上記の手順 1 で成功した場合 (IP アドレスとして正常に解析されます)、そのアドレスは結果としてすぐに返されます。 逆引き参照は試行されません。

ローカル コンピューターに IPv6 がインストールされていない場合は、 GetHostEntry メソッドの結果から IPv6 アドレスがフィルター処理されます。 その結果、hostNameOrAddress.parameter で使用可能な場合は、IPv6 のみが結果として得られる場合は、空のIPHostEntry インスタンスを取得できます。

返されるIPHostEntry インスタンスのAliases プロパティは、このメソッドによって設定されず、常に空になります。

このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「 .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 を取得します。

戻り値

hostNameOrAddressで指定されたホストに関するアドレス情報を格納しているIPHostEntry インスタンス。

適用対象