VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
IPアドレスからコンピュータ名を取得するには、System.Net名前空間のDnsクラスのResolveメソッドを使用します。ResolveメソッドはIPHostEntryオブジェクトを返します。IPHostEntryオブジェクトのHostNameプロパティでコンピュータ名を取得します。
コンピュータ名取得用のメソッドを作成したので載せておきます。(サンプル2)
もっとスマートなコーディングがあるかと思います。(..;)
各自で改良して、良いメソッドにしてください。
Imports System.Net '追加 : :省略 : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '変数を宣言 Dim strIP As String Dim IPHstEnt As IPHostEntry Dim strServer As String 'コンピュータ名を取得するIPアドレスを変数にセット strIP = "216.109.118.74" '指定したIPアドレスでIPHostEntryインスタンスを作成 IPHstEnt = Dns.Resolve(strIP) '取得したコンピュータ名を変数に代入 strServer = IPHstEnt.HostName '取得したコンピュータ名を表示 MessageBox.Show("コンピュータ名は [" & strServer & "] です。") End Sub
'========================================================================== '= '= METHOD NAME: GetHostNameFromIP '= '= ARGUMENT: '= IPAddress As String : コンピュータ名を取得するIPアドレス '= '= RETURN VALUE: '= コンピュータ名(文字列) '========================================================================== Private Function GetHostNameFromIP(ByVal IPAddress As String) As String Dim IPHstEnt As IPHostEntry Dim strServer As String Try '指定したIPアドレスでIPHostEntryインスタンスを作成 IPHstEnt = Dns.Resolve(IPAddress) strServer = IPHstEnt.HostName Catch SockEx As System.Net.Sockets.SocketException 'HostNameを解決出来ない場合の例外処理を記述 strServer = "" Catch SecuEx As System.Security.SecurityException 'アクセスするためのアクセス許可がなかった場合の例外処理を記述 strServer = "" End Try '取得したコンピュータ名を変数に代入 Return strServer End Function '使用方法は下記の通りです Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strServer As String '引数にコンピュータ名を取得するIPアドレスをセット strServer = GetHostNameFromIP("216.109.118.74") '取得したコンピュータ名を表示 MessageBox.Show("このPCのIPアドレスは [" & strServer & "] です。") End Sub