2010-07-29 25 views
5

Yerel ağda MAC adresini aramam gerekiyor ve Linux kullanıyorum. Yaptığım şey libnet ile bir ARP isteği göndermek, ancak 3 istek gönderdikten sonra önbellek hala güncellenmeyecek. Paketleri yakalamak için wireshark kullanıyorum. Wireshark'dan, ARP isteğimin her birinden sonra 3 ARP tekrarı aldım. ARP önbelleğinin nasıl güncellenmeyeceğini bilen var mı?, ancak ARP yanıtı alındıktan sonra arp önbellek güncellenmeyecek

cevap

4

Linux çekirdeği varsayılan olarak istenmeyen ARP'yi kabul etmiyor. İstek, kullanıcı alanı uygulamanız tarafından çekirdek tarafından değil, gönderildiği için, çekirdek yanıtı "istenmeyen" olarak görür.

Bu varsayılanı /proc/sys/net/ipv4/conf/*/arp_accept (aygıt başına veya aygıtlar arasında) olarak değiştirebilirsiniz.

+0

Hızlı cevap için teşekkürler! Şimdi anladım. Yine de, başka bir şey yapmak için başka bir yol var mı?/Proc/sys/net/ipv4/conf/*/arp_accept? ioctl tarafından? – Aitjcize

+0

Neden başka bir yola ihtiyacınız var? Bu şekilde neyin var? Hangi arabirimi kullanacağınızı bilmiyorsanız, * yerine "tümünü" kullanabilirsiniz. – camh

+0

@Aitjcize: '/ proc/sys /' sysctl arabirimidir, ancak Linux üzerinde * tercih edilen * arabirimidir. Basit bir fopen() ile programatik olarak değiştirebilirsiniz; fprintf(); fclose(); dizisi. – caf