SendARP 関数は、指定した宛先 IPv4 アドレスに対応する物理アドレスを取得するために、ARP (Address Resolution Protocol) 要求を送信する。
SendARP DestIP, SrcIP, pMacAddr, PhyAddrLen
DestIP : [int] 宛先 IPv4 アドレス。IPAddr 構造体の形式で指定する。ARP 要求はこの IPv4 アドレスに対応する物理アドレスの取得を試みる。 SrcIP : [int] 送信元 IPv4 アドレス。IPAddr 構造体の形式で指定する。任意で、ARP エントリ要求を送信するインターフェイスを選択するために用いる。呼び出し元はこのパラメータに INADDR_ANY に対応するゼロを指定できる。 pMacAddr : [intptr] ULONG 変数配列へのポインタ。Ethernet / トークンリングの物理アドレスを保持するため、少なくとも 2 つの ULONG 要素を持つ必要がある。配列の最初の 6 バイトに、DestIP に対応する物理アドレスが格納される。 PhyAddrLen : [var] 入力時、アプリケーションが物理 (MAC) アドレスを受け取るために確保したバッファの最大サイズ (バイト単位) を指定する ULONG 値へのポインタ。Ethernet / トークンリングの物理アドレスを格納するには少なくとも 6 バイトが必要。物理アドレスを受け取るバッファは pMacAddr が指す。正常終了時、このパラメータは pMacAddr に書き込まれたバイト数を指す値となる。
(プラグイン / モジュール : iphlpapi.dll)
SendARP 関数は、指定した宛先 IPv4 アドレスに対応する物理アドレスを取得するために、ARP (Address Resolution Protocol) 要求を送信する。 [戻り値] 関数が成功すると、戻り値は NO_ERROR である。失敗した場合は以下のエラーコードのいずれかが返される。 このドキュメントは省略されている。 [備考] SendARP 関数は、指定した宛先 IPv4 アドレスに対応する物理ハードウェアアドレス (MAC アドレス) を要求する。要求された情報がローカル ARP テーブルに存在しない場合、SendARP は ARP 要求を送信して物理アドレスを取得する。成功時、対応する物理アドレスは pMacAddr の配列に返される。物理アドレスは宛先 IPv4 がローカルサブネット上にある場合にのみ取得可能で、ルータを経由する場合は失敗する。Windows Vista 以降では成功時にローカル ARP テーブルが更新されるが、Windows Server 2003 以前では影響はない。 Windows Vista 以降では、pMacAddr や PhyAddrLen に NULL を渡すとアクセス違反で終了する。ERROR_BAD_NET_NAME、ERROR_BUFFER_OVERFLOW、ERROR_NOT_FOUND が返る場合、PhyAddrLen は 0 に設定される。PhyAddrLen が 6 未満なら ERROR_BUFFER_OVERFLOW を返す。SrcIp にローカルコンピュータ以外の IPv4 を指定すると ERROR_NOT_FOUND となる。Windows Server 2003 以前では、NULL を渡すと ERROR_INVALID_PARAMETER が返り、ERROR_GEN_FAILURE または ERROR_INVALID_USER_BUFFER が返る場合は PhyAddrLen が 0 になる。PhyAddrLen が 6 未満でもエラーにはならず、指定バイト数分のみ格納される。SrcIp にローカル以外を指定しても無視される。 ARP テーブル操作には GetIpNetTable、CreateIpNetEntry、DeleteIpNetEntry、SetIpNetEntry、FlushIpNetTable を使う。Windows Vista 以降では ResolveIpNetEntry2 が SendARP の代替となり、IPv4 アドレスの MIB_IPNET_ROW2 を渡せば ARP 要求が送信される。また GetIpNetTable2、CreateIpNetEntry2、DeleteIpNetEntry2、FlushIpNetTable2、SetIpNetEntry2 も利用できる。IPAddr データ型については Windows Data Types を、IP アドレスとドット区切り 10 進表記の変換には inet_addr / inet_ntoa を参照。
| プラグイン / モジュール | 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 |