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 に答える