IPHLPAPI(IP Helper API)の使い方 [VC++]

Windowsプログラムを書いていて、ネットワーク(インターネット)関連の設定情報を取得したり、変更したりするプログラムを書きたくなることはないでしょうか? 例えば、ネットワークインターフェースのリストを取得して、それぞれの名前や設定されているIPアドレスを表示したり、DHCPでアドレスを取り直したりするアプリケーションを書きたくなりませんか? ここでは、そのような欲求を持つ人たちの渇望を満たすための情報を載せようと考えています。 具体的には、IP Helper APIの使い方を説明します。

IPHLPAPI(IP Helper API)の準備

IP Helper APIは、ネットワークやネットワークインターフェース情報の取得や変更を行うプログラムを書くためのAPIです。 IP Helper APIは、Visual Studio(ビジュアルスタジオ)をインストールしただけでは使えません。 IP Helper APIを使うためには、Platform SDKをインストールしなくてはなりません。 Platform SDKのインストールに関してはこちらをご覧ください。

IP Helper APIがインストールできたら、次はプログラムを書くという作業ですが、コンパイルを通すためには2つの作業が必要です。 まず、コードの中でiphlpapi.hをincludeしなくてはなりません。 次に、リンカ対応ですが、WS2_32.lib(Winsock2)とiphlpapi.libの2つのライブラリファイルがリンクできるようにする必要があります。 Winsock2は、一部のAPIがIPアドレスなどの情報を返すために使っているようです。


実際にプログラミング

ネットワークインターフェース情報を取得する

ネットワークインターフェースのIPアドレス情報を取得する

DNS情報を取得する

ARP情報を取得する

自作ping

IPアドレスが変わったことを知る

RTTとHop Countを取得する

IPに関する統計情報を取得する

TCPに関する統計情報を取得する

UDPに関する統計情報を取得する

TCP接続情報一覧を取得する

UDP接続情報一覧を取得する

DHCPで取得したIPアドレスを解放する

DHCPを使ってIPアドレスを再取得する

IP TTLを設定する


資料集

IP Helper APIの関数一覧


関連情報

winsockプログラミング
Windowsで通信を行うにはwinsockを使います。 ここでは、winsockを使ったプログラムの書き方を紹介します。
インターネット入門(基礎技術)
インターネットの仕組みを初心者向けに説明しています。
Windows 2000/XPネットワークコマンド
Windows2000/XPを使ってネットワークの構築やトラブルシューティングを行う上で最低限知っておきたいコマンドを紹介しています。
Visual Studio
ウィンドウズプログラミングの標準環境です。

IPv6基礎検定

YouTubeチャンネルやってます!