VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
指定コンピュータのIPアドレスを取得するには、System.Net.Dns名前空間のGetHostByNameメソッドを使用します。 GetHostByNameメソッドはIPHostEntryオブジェクトを返します。IPHostEntryオブジェクトはIPアドレスのリストを保持しています。これは、ルータやゲートウェイ等2つ以上のIPアドレスを持っているものに対応するためです。ルータやゲートウェイでなくコンピュータのIP アドレスを取得する場合は要素番号「0」を指定します。
IPアドレス取得用のメソッドを作成したので載せておきます。(サンプル2)
もっとスマートなコーディングがあるかと思います。(..;)
各自で改良して、良いメソッドにしてください。
using System.Net; // 追加 : :省略 : private void button1_Click(object sender, System.EventArgs e) { // 変数を宣言 string strHost; IPHostEntry IPHstEnt; IPAddress IPAddrs; // ローカルのコンピュータ名を取得 strHost = Dns.GetHostName(); // コンピュータ名を指定してIPアドレスリストを取得 IPHstEnt = Dns.GetHostByName(strHost); // IPリストの0番目を取得 // 0番目はコンピュータのIPアドレス IPAddrs = IPHstEnt.AddressList[0]; // 取得したコンピュータのIPアドレスを表示 MessageBox.Show("このPCのIPアドレスは [" + IPAddrs.ToString() + "] です。"); }
/// <summary> /// 指定したホスト名またはURLのIPアドレスを取得する /// </summary> /// <param name="HostName">IPアドレスを取得するホスト名またはURL</param> /// <returns>IPアドレス(文字列)</returns> private string GetIPAddress(string HostName) { // 変数を宣言 string strIP; IPHostEntry IPHstEnt; IPAddress IPAddrs; try { // コンピュータ名を指定してIPアドレスリストを取得 IPHstEnt = System.Net.Dns.GetHostByName(HostName); // IPリストの0番目を取得 // 0番目はコンピュータのIPアドレス IPAddrs = IPHstEnt.AddressList[0]; strIP = IPAddrs.ToString(); } catch ( System.Net.Sockets.SocketException SockEx ) { // HostNameを解決出来ない場合の例外処理を記述 strIP = ""; } catch ( System.Security.SecurityException SecuEx ) { // アクセスするためのアクセス許可がなかった場合の例外処理を記述 strIP = ""; } return strIP; } //使用方法は下記の通りです。 private void button1_Click(object sender, System.EventArgs e) { string strIPAddrs; // GetIPAddressの引数にIPアドレスを取得したいホスト名 // またはURLを渡す strIPAddrs = GetIPAddress("www.google.com"); // 取得したIPアドレスを表示 MessageBox.Show("このPCのIPアドレスは [" + strIPAddrs + "] です。"); }