HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


VB.NET 2003の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > VB.NET 2003 Tips > ネットワーク Tips メニュー

03.IPアドレスからコンピュータ名を取得する

UPDATE:2004/05/30 

<< 前のTips  次のTips >>

 


 IPアドレスからコンピュータ名を取得するには、System.Net名前空間のDnsクラスのResolveメソッドを使用します。ResolveメソッドはIPHostEntryオブジェクトを返します。IPHostEntryオブジェクトのHostNameプロパティでコンピュータ名を取得します。

コンピュータ名取得用のメソッドを作成したので載せておきます。(サンプル2)
もっとスマートなコーディングがあるかと思います。(..;)
各自で改良して、良いメソッドにしてください。

 
サンプル1
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


 
サンプル2
 '==========================================================================
'=
'= 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