【问题标题】:How to detect presence of a device in a WiFi network?如何检测 WiFi 网络中是否存在设备?
【发布时间】:2015-05-31 21:53:48
【问题描述】:

我正在开发一个基于 Intel Edison(运行基于 Debian 的 Ubilinux)的项目。我需要 Edison 执行一些代码,我的 android 手机(运行 CM11)连接到与 Edison 相同的 WiFi。我如何检测我的手机在爱迪生的存在吗?我尝试了以下方法。

1.Pinging:但问题是路由器每次分配不同的IP,因为DHCP。所以,我不会知道我手机的IP地址。 有什么方法可以根据设备的 MAC 地址 ping 通吗?

2.我想从我的手机广播一个特殊的发现数据包,只要它连接到 WiFi。但是,我不知道从哪里开始这种方法。

【问题讨论】:

  • 这不是 python 问题。这是关于 wifi 协议及其在给定操作系统中的暴露的问题。一旦你知道在那里做什么,你需要从 python 来做——但这将是一个不同的问题。
  • @deets 我同意。但是,您评论的第二部分解释了为什么我标记了“python”:)
  • @Heisenberg 如果有任何一个问题对您有帮助(并且 arp 是要走的路,所以他们都这样做了..)点击问题旁边的勾号。

标签: python iot mac-address intel-edison debian-based


【解决方案1】:

找到mac地址可能会奏效。基本上你可以运行arp 命令来查看哪个mac-address 匹配哪个IP。这里有一个关于这样做的问题:

Obtain MAC Address from Devices using Python

【讨论】:

    【解决方案2】:

    Arprequest 允许您在 Python 中“解析”MAC 地址:

    from arprequest import ArpRequest
    >>> ar = ArpRequest('10.0.0.1', 'eth0')
    >>> ar.request()
    True
    

    在循环中弹出它,你就有了一个 MAC 监视器。

    作为替代方案,您可以采用基于事件的方法并使用 Scapy 监控来自您的 Android 设备的 DHCP 请求,并在它看到时采取行动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-30
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多