VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
指定コンピュータのIPアドレスを取得するには、System.Net.Dns名前空間のGetHostByNameメソッドを使用します。 GetHostByNameメソッドはIPHostEntryオブジェクトを返します。IPHostEntryオブジェクトはIPアドレスのリストを保持しています。これは、ルータやゲートウェイ等2つ以上のIPアドレスを持っているものに対応するためです。ルータやゲートウェイでなくコンピュータのIP アドレスを取得する場合は要素番号「0」を指定します。
IPアドレス取得用のメソッドを作成したので載せておきます。(サンプル2)
もっとスマートなコーディングがあるかと思います。(..;)
各自で改良して、良いメソッドにしてください。
Imports System.Net '追加 : :省略 : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '変数を宣言 Dim strHost As String Dim IPHstEnt As IPHostEntry Dim IPAddrs As IPAddress 'コンピュータ名を指定してIPアドレスリストを取得 '"HOST_NAME"を必要に応じて変更してください IPHstEnt = Dns.GetHostByName("HOST_NAME") 'IPリストの0番目を取得 '0番目はコンピュータのIPアドレス IPAddrs = IPHstEnt.AddressList(0) '取得したコンピュータのIPアドレスを表示 MessageBox.Show("このPCのIPアドレスは [" & IPAddrs.ToString() & "] です。") End Sub
'========================================================================== '= '= METHOD NAME: GetIPAddress '= '= ARGUMENT: '= HOSTNAME As String : IPアドレスを取得するホスト名またはURL '= '= RETURN VALUE: '= IPアドレス(文字列) '========================================================================== Private Function GetIPAddress(ByVal HostName As String) As String '変数を宣言 Dim IPHstEnt As IPHostEntry Dim IPAddrs As IPAddress Try 'コンピュータ名を指定してIPアドレスリストを取得 IPHstEnt = System.Net.Dns.GetHostByName(HostName) 'IPリストの0番目を取得 '0番目はコンピュータのIPアドレス IPAddrs = IPHstEnt.AddressList(0) Catch SockEx As System.Net.Sockets.SocketException 'HostNameを解決出来ない場合の例外処理を記述 Catch SecuEx As System.Security.SecurityException 'アクセスするためのアクセス許可がなかった場合の例外処理を記述 End Try Return IPAddrs.ToString() End Function '使用方法は下記の通りです Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim strIPAddrs As String 'GetIPAddressの引数にIPアドレスを取得したいホスト名 'またはURLを渡す strIPAddrs = GetIPAddress("www.google.com") '取得したIPアドレスを表示 MessageBox.Show("このPCのIPアドレスは [" & strIPAddrs & "] です。") End Sub