我对网络主题完全一窍不通。我正在尝试创建日志,记录特定 iPhone/手机连接到无线网络的情况。
主要目标是当已知的 MAC 地址进入网络时触发触发(创建日志文件、发送邮件、向网络服务器发送消息等)。
如果我发送,我会在终端上arp -a
获得手机的所有 IP 和 MAC 地址,但我无法弄清楚如何使用 MAC 地址执行此操作。
答案1
好吧,因为你只是在寻找单身的手机,您需要监视某些东西(DHCP 或 ARP 表)并查找手机的 MAC 地址。它不会改变,因为它(意味着)每个网络接口都是全局唯一的。
然而,也存在一些问题:
- DHCP 租约持续一段时间。仅仅因为有租约,并不意味着设备当前存在
- ARP 条目会被缓存,至少会缓存一段时间。仅仅因为您有一个条目,并不意味着该设备当前存在
- 如果设备长时间未连接网络,DHCP 租约到期,则设备的 IP 地址可能会在连接时发生变化,因此您不能依赖其 IP 地址
- 你的手机应该会尝试为自己注册一个 DNS 条目,但除非你有一个合适的本地 DNS 服务器(而不仅仅是像大多数调制解调器/路由器那样的中继器),否则你将无法查询设备的名称以获取 IP 地址,从而通过 ARP 获取其 MAC 地址
- IPv6 邻居发现可能是另一个不错的选择,但这涉及到网络和电话上的 IPv6 堆栈,并遭受与 ARP 相同的问题。
- 监控来自相关 MAC 的 DHCP 请求的广播流量。这些请求不应该经常出现,并且是设备当前在网络上的安全信号。但是,哇,这是一笔很大的开销。
最佳选择是配置 802.1x。这涉及支持 WPA2-Enterprise 和 RADIUS 服务器的 WiFi 接入点。监控 RADIUS 服务器的身份验证日志以获取相关设备的 MAC 地址,然后发送电子邮件。