我希望能够检测具有给定 MAC 地址的某个设备是否在网络上,而无需测试设备的接口具有 IP 地址。我可以做到这一点的一种方法是发送 DHCP 发现数据包并检查 DHCP 服务器的 MAC 地址,尽管这仅限于发现 DHCP 服务器。我还查找了以下协议链路层发现协议,但这似乎需要在被探测的设备上运行守护进程来响应消息。
我过去曾使用 arping 来使用 ARP 消息(因此仅限第 2 层)来“ping” IP 地址,但这仍然需要分配给接口的 IP 地址。我需要某种 l2ping,它可以 ping MAC 地址并查看是否得到响应。
答案1
看起来 arping 可以测试主机是否可通过 ARP 访问,而无需接口具有 IP 地址。唯一的缺点是您首先需要知道目标主机的 IP 地址,但这对我的用途来说没问题,因为任何以这种方式测试的主机都有静态 IP 地址。
使用 iputils 中的 arping 版本,以下命令有效:
arping -D -I <iface> <addr>
显然,网络接口需要有链接(ip link set <iface> up
),但不需要 IP 地址。
答案2
如果它没有 IP,那它就不在您的网络上,所以您无法访问它。
您所能做的就是通过设置授予权限的 MAC 白名单(经典热点方式)来限制对网络本身的访问。
据我所知,显然如此。