Arp

不響應對 IP 0.0.0.0 的請求的 ARP

  • October 7, 2017

我正在從事一個個人項目,該項目涉及對 IP 0.0.0.0:的特定/已知Who has 0.0.0.0? Tell x.x.x.xMAC 的 ARP 請求。據我所知,任何接收主機都應該對此做出響應,但似乎某些作業系統(尤其是 *nix 風格)不太遵守。我的基於 Android 的手機響應很好,但我的 OS X/Debian 機器都沒有。當我專門向他們詢問他們自己的 IP 時,他們會做出回應,所以他們並不是完全無視單播請求。我還沒有測試 Windows。

任何已知的原因和/或如何解決/解決這個問題?基本上我需要通過 MAC 地址探測我 LAN 上的主機並檢查它是否仍然存在(即響應探測)。如果除了 ARP 之外還有更好的方法可以做到這一點,我會接受任何建議,但不會將 LAN 上所有可能的 IP 的請求發送到特定的 MAC。

將此作為單獨的答案發布,以便我接受。=]

我最終將整個 ARP 更改為使用 ICMP,因為顯然這Who has 0.0.0.0?畢竟是非法的。

224.0.0.1我的程序現在發送一個帶有 IP 目標(第 3 層,多播到所有主機)的 ICMP 回應要求(ping)數據包,它將目標 MAC(第 2 層)設置為我正在監視的特定 MAC。它現在確實會產生明顯的成本,但我想我只能忍受它。

引用自:https://unix.stackexchange.com/questions/395176