1

任意の数のリモート ホスト マシンの IP アドレスのリストを取得し、それぞれのイーサネット MAC アドレスを取得できるようにするために、Linux でコンパイル可能な C または C++ コードが必要です。これらのホスト マシンは同じサブネット上にある場合もあれば、ルーターの背後にある別のサブネット上にある場合もあります。一部またはすべてのリモート ホストの MAC アドレスが、ルータのインターフェイスのアドレスである場合は問題ありません。最終的には、IP アドレスと MAC アドレスを FPGA に引き渡し、FPGA はこれらの情報を使用して UDP/IP パケットをフォーマットし、イーサネット経由でホストに送信します。明らかに、FPGA にも独自の MAC アドレスと IP アドレスが与えられ、パケットに送信元 MAC アドレスと送信元 IP アドレスが入力されます。

ARP パケットを作成してこれらのリモート マシンにブロードキャストし、宛先 MAC アドレスを抽出できるように ARP 応答パケットを受信できる、指摘できるコードはありますか?

4

2 に答える 2

2

やりたいことの一部には、生のソケットプログラミングが必要です。

http://mixter.void.ru/rawip.html

linux arp コマンドのソースは、必要なものの残りを提供します。ここにリンクがあります:

http://www.comp.nus.edu.sg/~cs4236/readings/out/html/arp_8c-source.html

于 2010-03-16T02:29:58.583 に答える
1

多少同じ仕事をしているarpingを調べることをお勧めします。IP と MAC を取得し、追加情報を受信しようとします。または、ping を実行するだけです。

http://freshmeat.net/projects/arping/

于 2010-03-16T15:18:08.153 に答える