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

C言語でIPアドレス・サブネットマスク・デフォルトゲートウェイを取得する方法

C言語を使えば、システムのインターネット接続に関する詳細情報(IPアドレス、サブネットマスク、デフォルトゲートウェイなど)を簡単に取得できます。本記事では、まず理解しておくべき基本用語を解説し、その後、実際にこれらの情報を表示するプログラムを紹介します。

基本用語の解説

IPアドレスとは

IPアドレス(Internet Protocol Address)は、インターネットに接続される各デバイスに割り当てられる固定の数値識別子です。デバイスはこのIPアドレスを通じて、インターネット上で相互に通信を行います。

サブネットマスクとは

サブネットマスクは、IPアドレスを構成する32ビットの要素で、IPアドレスを「ネットワークアドレス」と「ホストアドレス」の2つの部分に分割する役割を持ちます。サブネットとは、ネットワークに接続される小規模なネットワーク単位を指し、ネットワークに接続されたシステムの完全なIPアドレスを構成するために使用されます。

デフォルトゲートウェイとは

デフォルトゲートウェイは、ネットワークに接続されたコンピュータが外部と通信するためのアクセスポイント(IPルータ)です。アプリケーションが別のゲートウェイを明示的に指定しない限り、コンピュータは自動的にこのデフォルトゲートウェイを使用します。このゲートウェイは、システムのネットワークとインターネット全体をつなぐ重要な経路であり、ここが故障するとサブネットワークがインターネットから切断されてしまう可能性があります。

IP情報を取得する2つの方法

基本用語を理解したところで、実際にこれらの情報を表示するコードを見ていきましょう。C言語でシステムのIP情報を確認するには、主に以下の2つの方法があります。

  • system関数を使う方法
  • execl関数を使う方法

方法1: system関数を使う

C言語では、stdlib.hライブラリに含まれるsystem()関数を使用することで、ipconfigコマンドを実行してシステムのIP設定情報を取得できます。関数呼び出しの際には、実行したいipconfigファイルのフルパスを引数として渡します。

サンプルコード

#include <stdio.h>
#include <stdlib.h>
int main(){
    system("c:\windows\system32\ipconfig");
    return 0;
}

方法2: execl関数を使う

もう一つの方法として、execl()関数を使ってシステムのIP情報を取得できます。こちらの関数は、system関数とは異なり複数の引数を指定する必要があります。

サンプルコード

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
    execl("c:\windows\system32\ipconfig", "ipconfig", 0);
    return 0;
}

これらのコードの出力結果は、実行環境によって異なります。IPアドレスなどのネットワーク情報は機密性が高いため、ここでは具体的な出力例を省略していますが、ご自身の環境でコードを実行すれば、実際の詳細情報を確認することができます。

  1. デフォルトゲートウェイのIPアドレスを確認する方法【Windows・Mac・スマホ対応】

    家庭やオフィスのネットワークにおけるデフォルトゲートウェイ(通常はルーター)のIPアドレスを把握しておくことは、ネットワークトラブルの切り分けや、ルーターの管理画面(Webベースの設定画面)へのアクセスにおいて非常に重要です。多くの場合、デフォルトゲートウェイのIPアドレスは、ルーターに割り当てられたプライベートIPアドレスであり、ルーターがローカルネットワーク内の機器と通信するために使用するアドレスです。この記事の手順は、Windows 10からWindows XPまでのすべてのバージョンに対応しています。さらに、macOS、Linux、Android、iOSでの確認方法もあわせてご紹介しま

  2. IPアドレスの確認方法を徹底解説!グローバルIP・プライベートIP・ルーターの調べ方

    TCP/IPネットワークでは、「グローバルIPアドレス(パブリックIP/外部IP)」と「プライベートIPアドレス(内部IP/ローカルIP)」という2種類のIPアドレスが使われています。 ファイルサーバーやWebサイトを公開するときにはグローバルIPアドレスが必要になります。一方、プライベートIPアドレスは、ローカルネットワーク上のデバイス同士の通信や、ルーターのポート開放設定、ルーター管理画面へのアクセスなどに役立ちます。 この記事では、Webブラウザだけで確認できるグローバルIPアドレスの調べ方から、Windows・macOS・LinuxそれぞれでのプライベートIPアドレスの確認方法、さらに