路由器是否可以获取附近未连接到它的设备的MAC地址?我想写一个应用程序,当一个特定的MAC地址进入我拥有的路由器的范围内时,它会以某种方式通知我(电子邮件或其他东西)(这个应用程序比这具体得多,所以我不能使用预先构建的工具,但如果它们是开源的,它们可以提供帮助)。路由器将连接到互联网,设备是iPhone,因此它一直在寻找WiFi接入点,因此我觉得所有要素都在那里,但我不确定我所要求的是否可能。如果可能(即使仅通过重写路由器操作系统),需要采取什么措施?C是我希望达到的最低级别...
发布于 2010-02-15 17:46:31
您可以对基于Linux的路由器进行编程,这通常意味着运行OpenWRT或DD-WRT的路由器可以执行此操作;您可以将路由器置于监视模式,并让tcpdump或tshark侦听该特定的MAC地址。如果需要,您可以编写自己的捕获应用程序,使用libpcap进行侦听。如果您可以仅扫描活动通道,则路由器可以同时提供接入点。
您也可以监听标准路由器的日志,但问题是,在路由器记录任何内容之前,电话至少必须尝试关联;对于linux路由器,您只需监听该MAC地址是否发出任何数据包。
我最喜欢的基于Linux的路由器来自Ubiquiti,因为他们的RouterStation专业版是为运行OpenWRT而构建的,所以没有黑客攻击和完整的硬件文档。
发布于 2010-02-15 17:37:07
取决于路由器。有一些路由器具有完全开放的操作系统,例如Linksys WRT54GL,其中存在OpenWRT、DD-WRT和Tomato操作系统。例如,您可以开发一个简单的bash脚本来解释日志文件并向您发送电子邮件。
您使用其他路由器的体验可能有所不同。许多都有可以通过http或telnet访问的日志文件,所以即使您不能在路由器上运行自己的代码,您也可以从外部解释这一点。
发布于 2010-02-15 17:46:25
我猜你所说的路由器实际上是指wifi接入点(它可能集成到家庭路由器中),而你谈论的是wifi连接。那么不,这是不可能的。只有当设备至少尝试连接到其网络时,接入点才知道MAC地址。然而,设备显示的附近网络的列表不需要到任何网络的任何形式的连接。取而代之的是,它们监听接入点发出的信标。
https://stackoverflow.com/questions/2264929
复制相似问题