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

如何使用python检测我的无线设备?,python,tcp,ip,ping,Python,Tcp,Ip,Ping,我有一个无线设备,我一直在通过python脚本远程发送命令。一次可能有多个人尝试访问它,但此设备一次只允许一个TCP/IP连接(这对于此应用程序是一件好事)。我想做的是让某人知道该设备已经在使用中(他们现在只是得到一个一般性错误,好像该设备已关闭)。我认为这样做的一个好方法是,首先尝试ping设备。如果设备已启动但仍没有连接,则表示已连接其他人。但是,如果我在其他人连接的情况下尝试ping设备,它会表现为设备已关闭。我试着看看我的设备上是否有任何可以更改的非阻塞设置(我对无线通信是新手,所以我甚

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

不幸的是,这仅在没有其他人与设备通信时才起作用——ping它似乎创建了另一个TCP连接,或者至少是这样处理的。我需要一种在没有任何实际通信的情况下检测设备的方法(如果可能的话)。