如何使用 python 检测我的无线设备?

How do I detect my wireless device using python?

我有一个无线设备,我一直在通过 python 脚本向它远程发送命令。一次可能会有不止一个人尝试访问它,但是这个设备一次只允许一个 TCP/IP 连接(这对这个应用程序来说是一件好事)。我想要做的是让某人知道该设备已经在使用中(他们现在只是收到一个一般性错误,就好像设备已关闭一样)。我认为执行此操作的一个好方法是先尝试 ping 设备。如果设备已启动但仍然没有连接,则表示已连接其他人。但是,如果我在其他人连接时尝试 ping 设备,它就像设备已关闭一样。我试图查看我的设备上是否有任何我可以更改的非阻塞设置(我是无线通信的新手,所以我什至不知道这是否有帮助),但我无处可去.有没有办法在不实际建立 TCP 连接的情况下检测此设备(给定其 IP 地址)? 顺便说一句,我是 运行 Windows 7,我当前用于 ping 设备的代码如下所示:

def isUp(hostname):
    response = os.system("ping " + hostname + " -n 1")
    isUpBool = False
    if response == 0:
        print hostname, 'is up!'
        isUpBool = True
    else:
        print hostname, 'is down!'
    return isUpBool

试试这个

import os

hostname = raw_input ('Enter the hostname: ')
response = os.system("ping -n 1 " + hostname)

if response == 0:
    print(hostname, 'is up!')
else:
    print(hostname, 'is down!')

在python的套接字库中摸索,我找到了一种解决这个问题的迂回方法。事实证明,当您尝试在已在使用的设备上使用我的程序时,当您尝试发送或接收数据时(不是在连接到它时)会触发错误。我一直在连接并立即尝试进行通信以确定连接是否存在,当它不起作用时看起来我从来没有连接过。因此,如果您能够成功建立连接,但无法通信,则可以判断是否存在现有连接。