3

(ARP=アドレス解決プロトコル-RFC826)ユーザーワールドプログラムを介してWindowsでARPトラフィックを送受信する方法はありますか?Linuxでは、ARPトラフィックを送信するためのrawソケットを作成するだけですが、Windowsでは、そのようなトラフィックを送信するために使用できるドライバーを作成する必要があることが私の調査で示唆されています。WinPcapの使用を考えましたが、そのようなトラフィックの送受信に使用できるドライバーを内部にインストールします。

私の質問は、ドライバーをインストールせずに、WindowsがARPパケットの送受信を許可する方法はありますか?

4

1 に答える 1

1

ARPパケットを送信する最も簡単な方法は、おそらくを使用することSendARPです。

次に、を使用GetIpNetTableしてIPスタックのARPテーブルからアドレスを取得できます。現在のアドレスを確実に取得するには、通常DeleteIpNetEntry、アドレスを削除してからSendARPしばらく待ってからGetIpNetTable(必要に応じて、目的のアドレスのエントリが含まれるアドレスを取得するまで、数回繰り返します)。

または、Vista以降の場合は、を使用ResolveIpNetEntry2してデータをもう少し直接取得できます。これにより、アドレスの現在のエントリ(存在する場合)が自動的にフラッシュされ、ARPパケットが送信され、現在の結果が返されます(間違っていない場合は、スタックのARPテーブルの更新にも使用されます)。

于 2012-05-16T18:04:39.093 に答える