1

カーネル モジュールを作成しており、特定の IP について、その IP のカーネルの ARP キャッシュに ARP エントリがあるかどうかを確認する必要があります。存在する場合は、この ARP エントリから MAC アドレスを取得する必要があります。

この時点でarp_find機能を理解しようとしていますusr/src/linux-version/net/ipv4/arp.cが、よくわかりません... 誰かがこのタスクを達成する方法の例を投稿するか、私を助けることができる何かに私を案内してもらえますか? よろしくお願いします!

編集:私のIPアドレスはstruct in_addr

編集 #2:私は自分の答えを見つけました - この問題を抱えている人は、 の機能neigh_lookupを確認してくださいnet/core/neighbour.c。このpkeyパラメーターは、IPv4 アドレスへの単なるポインターです ( struct in_addr)。

4

2 に答える 2

0

Linuxカーネルでは、ARPキャッシュはネイバーのMACアドレスのみを保存すると思います。arp_ioctl() を使用するか、 arp_ioctl() アプローチに従ってタスクを実装できます。arp_ioctl() は 2 つの主要な処理を行います。(1) net_device を見つけます。(2) arp ルックアップ。

于 2013-03-05T02:23:10.370 に答える