作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要知道特定电脑(我知道 ip 和 MAC)何时连接到 LAN。我想避免所有轮询机制,是否有可能在 linux 下实现这一点?也许通过嗅探 icmp 数据包?
谢谢
最佳答案
如果您控制了网关,您可以嗅探流量并查看是否有来自/到该主机的流量(通过 MAC 或 IP 地址)。
如果不是,事情就会变得复杂,并且在大多数情况下需要某种轮询 - 在交换网络中,您通常不会看到发往另一台主机的流量;检查“在线性”的最可靠方法是 ARP,可能通过使用 arping
(或自己执行 ARP 请求并嗅探 ARP 回复的流量)。
请注意,这两种方法都不是“万无一失”的 - 使用像 powernap
这样的工具,(暂时)离线主机可以看起来在线。
关于linux - 如何在局域网内抓pc上网?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5882379/
我是一名优秀的程序员,十分优秀!