我需要验证主机是否可用,因此我使用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
我的代码出了什么问题?
答案 0 :(得分: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