C#でホスト名とIPアドレスを表示するプログラムの書き方
C#でコンピュータのホスト名やIPアドレスを取得したい場面は、ネットワークアプリケーションの開発やシステム管理ツールの作成などでよくあります。本記事では、System.Net名前空間に用意されたクラスを使って、ホスト名とIPアドレスを簡単に取得・表示する方法を解説します。
ホスト名を取得する
ホスト名を取得するには、Dns.GetHostName()メソッドを使用します。このメソッドは、ローカルコンピュータのホスト名を文字列として返します。
String hostName = string.Empty;
hostName = Dns.GetHostName();
Console.WriteLine("Hostname: " + hostName);IPアドレスを取得する
続いて、Dns.GetHostEntry()メソッドにホスト名を渡してIPHostEntryオブジェクトを取得し、そのAddressListプロパティからIPアドレスの一覧を取り出します。
IPHostEntry myIP = Dns.GetHostEntry(hostName); IPAddress[] address = myIP.AddressList;
AddressListプロパティはIPAddress型の配列を返すため、1台のコンピュータに複数のIPアドレス(IPv4やIPv6など)が割り当てられている場合でも、すべて取得できます。
サンプルコード(完全な例)
以下のコードを実行すると、ホスト名とIPアドレスがコンソールに表示されます。
using System;
using System.Net;
class Program {
static void Main() {
// ホスト名を取得して表示
String hostName = string.Empty;
hostName = Dns.GetHostName();
Console.WriteLine("Hostname: " + hostName);
// ホスト名からIPアドレスの一覧を取得
IPHostEntry myIP = Dns.GetHostEntry(hostName);
IPAddress[] address = myIP.AddressList;
// 取得したIPアドレスを順番に表示
for (int i = 0; i < address.Length; i++) {
Console.WriteLine("IP Address {0} : {1}", i + 1, address[i].ToString());
}
Console.ReadLine();
}
}実行結果の例
Hostname: DESKTOP-ABC123 IP Address 1 : 192.168.1.10 IP Address 2 : fe80::a1b2:c3d4:e5f6:1234%12
ポイントのまとめ
- Dns.GetHostName():ローカルマシンのホスト名を取得する。
- Dns.GetHostEntry(hostName):ホスト名に対応するDNS情報を取得する。
- IPHostEntry.AddressList:割り当てられたすべてのIPアドレスをIPAddress配列として返す。
なお、環境によってはIPv6アドレスも一緒に表示されることがあります。IPv4アドレスだけを抽出したい場合は、address[i].AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkのような条件でフィルタリングするとよいでしょう。
-
C言語で文字列へのポインタの配列とそのアドレスを出力する方法
まずは、C言語における「ポインタの配列」とは何かを確認しましょう。 文字列へのポインタの配列とは 各要素が、文字列の先頭アドレスを指すポインタになっている配列のことです。 宣言と初期化は次のように行います。 char *a[ ] = {"one", "two", "three"}; ここで、a[0] は文字列 one の、a[1] は two の、a[2] は three のそれぞれ先頭アドレスを指すポインタです。 イメージとしては、配列の各要素が対応する文字列の先頭番地を保持しており、その番地をたどることで文字列本体へアクセスで
-
Tkinterウィンドウにホスト名とIPアドレスを表示する方法
ユーザーのIPアドレスを取得するには、Pythonの標準ネットワーキングインターフェースであるsocketモジュールを使用します。まずデバイスのホスト名を照会し、その後に関連付けられたIPアドレスを取得するという流れになります。この記事では、socketライブラリを使ってホスト名とIPアドレスを取得し、それらを2つのラベルに表示する方法を解説します。実装の手順tkinterライブラリをインポートし、tkinterフレームのインスタンスを作成します。geometryメソッドを使ってフレームのサイズを設定します。次に、socketライブラリのgethostname()メソッドを使用してホスト名を取