C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でクライアントのIPアドレスを取得する方法を解説

C#でクライアント(ローカルマシン)のIPアドレスを取得するには、System.Net名前空間に含まれるDNS関連のクラスを利用します。基本的な流れは、「まずホスト名を取得し、そのホスト名からIPアドレスの一覧を取り出す」という2段階です。

手順1:Dns.GetHostName()でホスト名を取得する

最初に、Dns.GetHostName()メソッドを使って、実行中のマシンのホスト名を取得します。

String hostName = string.Empty;
hostName = Dns.GetHostName();
Console.WriteLine("Hostname: " + hostName);

このコードを実行すると、コンソールにマシンのホスト名が表示されます。

手順2:IPHostEntry.AddressListプロパティでIPアドレスを取得する

次に、取得したホスト名をDns.GetHostEntry()メソッドに渡してIPHostEntryオブジェクトを取得し、そのAddressListプロパティからIPアドレスの配列を取り出します。

IPHostEntry myIP = Dns.GetHostEntry(hostName);
IPAddress[] address = myIP.AddressList;

1台のマシンには複数のネットワークインターフェース(IPv4やIPv6など)が割り当てられている場合があるため、IPアドレスは配列として返されます。

サンプルコード全体

以下は、ホスト名と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: MY-PC
IP Address 1 : fe80::a1b2:c3d4:e5f6:1234%12
IP Address 2 : 192.168.1.10

ポイントのまとめ

  • Dns.GetHostName():ローカルコンピュータのホスト名を文字列として返します。
  • Dns.GetHostEntry():ホスト名またはIPアドレスを引数に取り、DNS情報をIPHostEntryとして返します。
  • IPHostEntry.AddressList:そのホストに関連付けられたすべてのIPアドレスをIPAddress型の配列として返します。

この方法を使えば、IPv4・IPv6を問わず、マシンに割り当てられているすべてのIPアドレスを簡単に取得できます。ネットワークアプリケーションの開発やログ出力、接続先の特定など、さまざまな場面で活用できる基本的なテクニックです。

  1. C++で平行四辺形の面積を求めるプログラムの作成方法

    この記事では、平行四辺形の底辺と高さを表す2つの値が与えられたとき、C++を使ってその面積を求めるプログラムを作成する方法を解説します。 平行四辺形とは? 平行四辺形とは、4つの辺からなる閉じた図形であり、向かい合う2組の辺がそれぞれ長さが等しく、互いに平行になっている四角形のことです。 問題を理解するための具体例 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積 = 底辺 × 高さ = 20 × 15 = 300 解決アプローチ この問題を解くには、平行四辺形の面積を求める幾何学の公式を使用します。 面積 = 底辺 × 高さ つまり、与えられた底辺と高さを掛け合わせ

  2. Windows 11でIPアドレスを確認する方法|コマンドプロンプトと設定アプリの手順

    インターネット接続に不具合が生じたとき、さまざまな対処法を試す中で、自分のPCのIPアドレスを把握しておくと意外と役立ちます。 IPアドレス(Internet Protocol Address)とは、インターネット上でデバイスを識別するための一意な数値アドレスのことです。機械にとっての「郵便番号」と考えると分かりやすいでしょう。現実世界で郵便番号が住所を特定するように、IPアドレスはコンピューターの場所を示し、デバイス同士がお互いを見つけて通信できるようにしています。 Windows 11でIPアドレスを確認する方法は複数あります。まずは最もシンプルな方法である「コマンドプロンプト」を使う