VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
IPアドレスからコンピュータ名を取得するには、System.Net名前空間のDnsクラスのResolveメソッドを使用します。ResolveメソッドはIPHostEntryオブジェクトを返します。IPHostEntryオブジェクトのHostNameプロパティでコンピュータ名を取得します。
コンピュータ名取得用のメソッドを作成したので載せておきます。(サンプル2)
もっとスマートなコーディングがあるかと思います。(..;)
各自で改良して、良いメソッドにしてください。
/// <summary> /// 指定したIPアドレスからコンピュータ名を取得する /// </summary> /// <param name="HostName">コンピュータ名を取得するIPアドレス</param> /// <returns>コンピュータ名(文字列)</returns> private string GetHostNameFromIP(string IPAddress) { IPHostEntry IPHstEnt; string strServer; try { // 指定したIPアドレスでIPHostEntryインスタンスを作成 IPHstEnt = Dns.Resolve(IPAddress); strServer = IPHstEnt.HostName; } catch ( System.Net.Sockets.SocketException SockEx ) { // HostNameを解決出来ない場合の例外処理を記述 strServer = ""; } catch ( System.Security.SecurityException SecuEx ) { // アクセスするためのアクセス許可がなかった場合の例外処理を記述 strServer = ""; } return strServer; } //使用方法は下記の通りです。 private void button1_Click(object sender, System.EventArgs e) { string strServer; // コンピュータ名を取得したいIPアドレスを引数にセット strServer = GetHostNameFromIP("216.109.118.74"); // 取得したコンピュータ名を表示 MessageBox.Show("このPCのIPアドレスは [" + strServer + "] です。"); }