ローカルコンピュータのアダプタに関連付けられたアドレスを取得する。
GetAdaptersAddresses Family, Flags, Reserved, AdapterAddresses, SizePointer
Family : [int] Flags : [int] 取得するアドレスの種類。指定可能な値は Iptypes.h で定義される。Iptypes.h は Iphlpapi.h から自動的にインクルードされるため直接使用してはならない。 Reserved : [intptr] 現在未使用で、将来のシステム使用のために予約されている。呼び出し元は NULL を渡すこと。 AdapterAddresses : [var] 成功時に IP_ADAPTER_ADDRESSES 構造体の連結リストを受け取るバッファへのポインタ。 SizePointer : [var] AdapterAddresses が指すバッファのサイズを指定する変数へのポインタ。
(プラグイン / モジュール : iphlpapi.dll)
ローカルコンピュータのアダプタに関連付けられたアドレスを取得する。 [戻り値] 関数が成功すると ERROR_SUCCESS (NO_ERROR と同値) を返す。失敗した場合の戻り値は以下のいずれかのエラーコードとなる。 このドキュメントは省略されている。 [備考] GetAdaptersAddresses 関数は IPv4 / IPv6 両方のアドレス情報を取得できる。アドレスは IP_ADAPTER_ADDRESSES 構造体の連結リストとして AdapterAddresses に返される。呼び出し元はバッファを確保し、不要になったら解放する責任がある (HeapAlloc / HeapFree 等。確保と解放は同じ関数ファミリを使うこと)。GetAdaptersAddresses は同期呼び出しのみ。低レベルインターフェイステーブルを走査するため、かなりのリソースと時間を要する。必要なバッファサイズを得るには、まず小さいバッファで呼び出して ERROR_BUFFER_OVERFLOW を得る方法もあるが、この方法は複数回呼び出しが必要になり推奨されない。推奨は 15KB のバッファを事前確保する方法で、大半のケースで一発で成功する。Windows 10 より前ではアダプタの順序はネットワーク接続フォルダの詳細設定から制御できたが、Windows 10 以降では IPv4 / IPv6 の経路メトリックで決まる。GAA_FLAG_INCLUDE_ALL_INTERFACES を指定すると Family に束縛されていないアドレスも含め全 NDIS アダプタを取得する。IP_ADAPTER_ADDRESSES 構造体のサイズは Windows XP SP1、Windows Vista、Vista SP1 / Server 2008 で変更されている。Length メンバでバージョンを判別できる。GetIpAddrTable はローカルコンピュータのインターフェイスから IPv4 アドレスへのマッピングテーブルを MIB_IPADDRTABLE で取得する。Windows Server 2003 以前の Platform SDK では戻り値型が ULONG ではなく DWORD と定義されていた。IP_ADAPTER_ADDRESSES では SOCKET_ADDRESS 構造体が使われる。Windows Vista 以降では Ws2def.h (Winsock2.h から自動インクルード) で定義され、Windows Server 2003 / XP の Platform SDK では Winsock2.h で宣言される。IP_ADAPTER_ADDRESSES を使うには Iphlpapi.h の前に Winsock2.h をインクルードする必要がある。
| プラグイン / モジュール | iphlpapi.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の iphlpapi.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_iphlpapi_gen2.hs |