ホスト名からIPアドレス、IPアドレスからホスト名を取得するホスト名からIPアドレスを取得する方法(例えば「www.yahoo.com」から「66.218.71.81」)、およびIPアドレスからホスト名を取得する方法(例えば「66.218.71.81」から「w1.scd.yahoo.com」)を紹介します。 ホスト名からIPアドレスを取得するホスト名からIPアドレスを取得するには、Dns.Resolveメソッド(.NET Framework 2.0以降は、Dns.GetHostEntryメソッド)でIPHostEntryオブジェクトを作成して、AddressListプロパティを参照します。 [VB.NET] 'ホスト名からIPアドレスを取得 Dim server As String = "www.yahoo.com" 'IPHostEntryのインスタンスを作成 '.NET Framework 2.0以降は次のようにする Dim iphe As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(server) '.NET Framework 1.1以前は次のようにする 'Dim iphe As System.Net.IPHostEntry = System.Net.Dns.Resolve(server) 'または 'Dim iphe As System.Net.IPHostEntry = System.Net.Dns.GetHostByName(server) 'IPアドレスのリストを取得し、はじめのIPアドレスを取得 Dim hostadd As System.Net.IPAddress = iphe.AddressList(0) '文字列に変換 Console.WriteLine(hostadd.ToString()) 'この結果は例えば「66.218.71.81」 [C#] //ホスト名からIPアドレスを取得 string server = "www.yahoo.com"; //IPHostEntryのインスタンスを作成 //.NET Framework 2.0以降は次のようにする System.Net.IPHostEntry iphe = System.Net.Dns.GetHostEntry(server); //.NET Framework 1.1以前は次のようにする //System.Net.IPHostEntry iphe = System.Net.Dns.Resolve(server); //または //System.Net.IPHostEntry iphe = System.Net.Dns.GetHostByName(server); //IPアドレスのリストを取得し、はじめのIPアドレスを取得 System.Net.IPAddress hostadd = iphe.AddressList[0]; //文字列に変換 Console.WriteLine(hostadd.ToString()); //この結果は例えば「66.218.71.81」 IPアドレスからホスト名を取得するIPアドレスからホスト名を取得する場合も同様に、Dns.Resolveメソッド(.NET Framework 2.0以降は、Dns.GetHostEntryメソッド)でIPHostEntryオブジェクトを作成して、HostNameプロパティを参照します。 [VB.NET] 'IPアドレスからホスト名を取得 server = "66.218.71.80" 'IPHostEntryのインスタンスを作成 '.NET Framework 2.0以降は次のようにする Dim iphe As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(server) '.NET Framework 1.1以前は次のようにする 'Dim iphe As System.Net.IPHostEntry = System.Net.Dns.Resolve(server) 'または 'Dim iphe As System.Net.IPHostEntry = System.Net.Dns.GetHostByAddress(server) 'ホスト名を取得 Console.WriteLine(iphe.HostName) 'この結果は例えば「w1.scd.yahoo.com」 [C#] //IPアドレスからホスト名を取得 string server = "66.218.71.80"; //IPHostEntryのインスタンスを作成 //.NET Framework 2.0以降は次のようにする System.Net.IPHostEntry iphe = System.Net.Dns.GetHostEntry(server); //.NET Framework 1.1以前は次のようにする //System.Net.IPHostEntry iphe = System.Net.Dns.Resolve(server); //または //System.Net.IPHostEntry iphe = System.Net.Dns.GetHostByAddress(server) //ホスト名を取得 Console.WriteLine(iphe.HostName); //この結果は例えば「w1.scd.yahoo.com」 補足:Resolve、GetHostByName、GetHostByAddress 、GetHostEntryメソッドは同期的に処理を行うため、呼び出すと終了するまでスレッドをブロックします。非同期で行うには、それぞれ、BeginResolve、BeginGetHostByName、BeginGetHostAddresses、BeginGetHostEntryで処理を開始し、EndResolve、EndGetHostByName、EndGetHostAddresses、EndGetHostEntryで終了させます。
|
|
Copyright 2002-2008 DOBON!. All rights reserved.
|