0

我需要验证主机是否可用,所以我使用 os.system("ping -c 1 %s" % host) 来检查它。如果主机可用,代码运行良好,但当主机不可用时,调用不会永远返回。这是我在 view.py 中的代码:

def go(request):
    code = request.GET.get('code')
    host = request.GET.get('host')
    if not verify_host(host):
        return HttpResponse("Host not available!")

def verify_host(host):
    cmd = "ping -c 1 -W 5 %s" % host
    if os.system(cmd):
        return False
    return True

那么我的代码有什么问题?

4

1 回答 1

1

利用

cmd = "ping -c 1 %s -W 2" % host

-W 用于超时。

这不是python问题。命令方块

编辑:它工作正常。试试这个代码:

import os
host="10.13.1.23"
def verify_host(host):
    cmd = "ping -c 1 -W 5 %s" % host
    if os.system(cmd):
        return False
    return True

print verify_host(host)

输出:

$python file.py
PING 10.13.1.23 (10.13.1.23) 56(84) bytes of data.

--- 10.13.1.23 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

False
于 2013-09-05T08:41:27.430 回答