[英]Getting MAC address for a given IP from ARP entry (Linux kernel)
我正在編寫內核模塊,並且需要給定IP,以驗證該IP的內核ARP緩存上是否存在ARP條目。 如果存在,則需要從此ARP條目中獲取MAC地址。
我此時正試圖了解usr/src/linux-version/net/ipv4/arp.c
上的arp_find
函數,但我不太了解...有人可以發布一個示例來說明如何完成此任務任務還是將我引導到可以幫助我的事情上? 我將不勝感激!
編輯:我的IP地址存儲為struct in_addr
編輯#2:我找到了答案-對於那些有此問題的人,請檢查net/core/neighbour.c
上的函數neigh_lookup
。 pkey
參數只是指向您的IPv4地址( struct in_addr
)的指針。
我認為在Linux內核中,ARP緩存僅存儲鄰居的mac地址。 您可以使用arp_ioctl()或遵循arp_ioctl()方法來實現您的任務。 arp_ioctl()做兩件事:(1)找到net_device; (2)arp查找;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.