【问题标题】:How to check when new device has connected to Wifi in Python [closed]如何在 Python 中检查新设备何时连接到 Wifi [关闭]
【发布时间】:2021-04-13 08:56:58
【问题描述】:

我想构建一个脚本,当我的 PlayStation 打开/连接到 wifi 时,它会关闭我房间里的 Philips Hue 灯。我把灯关掉了,但我不知道如何检查我的 PlayStation 或新设备是否已连接到 wifi。任何帮助,将不胜感激。 (我是 python 和一般编码的初学者)

【问题讨论】:

  • 这确实取决于您的设置,但请检查路由器的网页以查看它是否列出了活动的客户端。如果是这样,您应该能够使用一些 selenium 浏览器自动化来完成它
  • 除非您的路由器有可以查询的 API,否则这可能很难做到。最简单的方法可能是使用像 scapy 这样的库(或者只是原始套接字),并监听 Playstation 发出的广播。 IIRC,Playstations 喜欢持续播放。如果知道 PS 的 IP,就可以监听流量了。
  • @inspectorG4dget 路由器网页实际上确实显示了连接的设备及其 IP,但我真的不知道如何让 selenium 找到 IP 并查看其连接时间
  • @Carcigenicate 这似乎是个好主意,我会看一些关于如何使用 scapy 的教程
  • @ctp 这不是一个非常简单的库。尽管如此,您只需要学习sniff 函数,并知道如何访问和检查部分数据包。此外,您将需要 Wireshark 进行初始测试,以便了解您实际在寻找什么流量(并确认您的 PS 和我的一样嘈杂)。如果您以前从未使用过 Wireshark,它是必不可少的网络工具。

标签: python python-3.x automation python-requests wifi


【解决方案1】:

您可以尝试使用 Who is on my WiFi,这是指向它的链接 https://pypi.org/project/who-is-on-my-wifi/,如果这不起作用,您可以尝试使用 Wireshark(一个记录与您的 IP 的每个连接的程序)进行设置

【讨论】:

  • 好主意,我会看看它是如何工作的,并学习如何让它检测我猜何时连接了特定 IP
【解决方案2】:

在您的路由器配置设置中,然后为您的 playstation 分配一个静态 IP 地址。

然后你的 python 脚本只需要 ping 那个 IP 地址来查看它是否在线

subprocess.check_output(["ping", "-c", "1", "192.1.1.123"])

如果设备在线,这将返回 true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多