2013-09-05 2 views
0

호스트를 사용할 수 있는지 확인해야하므로 os.system ("ping -c 1 % s"% host)을 사용하여 확인합니다. 호스트를 사용할 수 있으면 코드는 제대로 작동하지만 호스트를 사용할 수 없으면 호출이 영원히 반환되지 않습니다.linux ping을 호출 할 때 장고 응용 프로그램이 차단되었습니다.

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 

그래서 내 코드와 무슨 일이야 : 여기 view.py 내 코드는?

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

-W

답변

1

사용은 제한 시간입니다.

이것은 파이썬 문제가 아닙니다. 명령 블록

편집 : 잘 작동합니다. 이 코드를 시도 :

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 
+0

,하지만 여전히 차단. 그것은 핑 매개 변수가 어떻게 든 전달되지 않는 것 같습니다. – JohnnyChan

관련 문제