GetIpNetTable 関数 (iphlpapi.h)
GetIpNetTable 関数は、IPv4 から物理アドレス へのマッピング テーブルを取得します。
構文
IPHLPAPI_DLL_LINKAGE ULONG GetIpNetTable(
[out] PMIB_IPNETTABLE IpNetTable,
[in, out] PULONG SizePointer,
[in] BOOL Order
);
パラメーター
[out] IpNetTable
IPv4 から物理アドレスへのマッピング テーブルをMIB_IPNETTABLE構造体として受け取るバッファーへのポインター。
[in, out] SizePointer
入力時に、 pIpNetTable パラメーターによって指されるバッファーのサイズをバイト単位で指定します。
出力時に、バッファーが、返されるマッピング テーブルを保持するのに十分な大きさでない場合、関数は、このパラメーターを必要なバッファー サイズ (バイト単位) に設定します。
[in] Order
返されるマッピング テーブルを IP アドレスで昇順に並べ替えるかどうかを指定するブール値。 このパラメーターが TRUE の場合、テーブルは並べ替えられます。
戻り値
関数が成功した場合、戻り値はNO_ERRORまたはERROR_NO_DATA。
関数が失敗した場合、またはデータが返されない場合、戻り値は次のいずれかのエラー コードになります。
リターン コード | 説明 |
---|---|
|
pIpNetTable パラメーターが指すバッファーの大きさが不十分です。 必要なサイズは、pdwSize パラメーターが指す DWORD 変数で返されます。 |
|
無効なパラメーターが関数に渡されました。 このエラーは、 pdwSize パラメーターが NULL であるか、 GetIpNetTable が pdwSize パラメーターが指すメモリに書き込めない場合に返されます。 |
|
返すデータはありません。 IPv4 から物理アドレスへのマッピング テーブルが空です。 この戻り値は、 GetIpNetTable 関数の呼び出しが成功したが、返すデータがなかったことを示します。 |
|
IPv4 トランスポートがローカル コンピューターで構成されていません。 |
|
FormatMessage を使用して、返されたエラーのメッセージ文字列を取得します。 |
注釈
次に、
GetIpNetTable 関数は、ローカル システム上の IPv4 のアドレス解決プロトコル (ARP) エントリを IPv4 から物理アドレス マッピング テーブルに列挙し、この情報を MIB_IPNETTABLE 構造で返します。
IPv4 アドレス エントリは、pIpNetTable パラメーターによって指されるバッファー内のMIB_IPNETTABLE構造体で返されます。 MIB_IPNETTABLE構造体には、ARP エントリの数と、各 IPv4 アドレス エントリのMIB_IPNETROW構造体の配列が含まれています。
pIpNetTable パラメーターによって参照される返されるMIB_IPNETTABLE構造体には、dwNumEntries メンバーと、MIB_IPNETTABLE 構造体のテーブル メンバー内の最初のMIB_IPNETROW配列エントリとの間の配置のためのパディングが含まれていることに注意してください。 配置のためのパディングは、 MIB_IPNETROW 配列エントリ間に存在する場合もあります。 MIB_IPNETROW配列エントリへのアクセスは、パディングが存在する可能性があることを前提とする必要があります。
Windows Vista 以降では、 GetIpNetTable2 関数を使用して、IPv6 と IPv4 の両方の近隣 IP アドレスを取得できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | iphlpapi.h |
Library | Iphlpapi.lib |
[DLL] | Iphlpapi.dll |