8.8.8.8에 대해 1개의 ping을 수행하고 지연된 출력을 콘솔에 인쇄하는 Python 스크립트를 작성했습니다("py_script:..." 출력). 각 인쇄 후 프로세스는 1초 동안 휴면 상태로 유지됩니다.
업데이트된 정보만 원하기 때문에 한 번에 1개의 ping만 수행합니다(그렇지 않으면 연속 출력의 마지막 줄 - ping 8.8.8.8). 코드는 아래와 같이 표시됩니다.
import re
from time import sleep
try:
print("ping -c 1 8.8.8.8")
while(True):
out = subprocess.check_output(['ping','-c',' 1','8.8.8.8']).decode('utf-8')
x = re.search("time=(.*)ms",out)
print("py_script: " + x.group(1) + "ms")
sleep(1)
except subprocess.CalledProcessError as grepexc:
if (grepexc.returncode == 1):
print("E: destination host unreachable: code", grepexc.returncode)
else:
print("E: name or service unknown: code", grepexc.returncode)
스크립트의 출력 값과 연속 핑 값을 8.8.8.8과 비교하고 싶습니다. 그래서 저는 두 가지를 모두 했습니다(그림 참조).
그러나 보시다시피 출력이 다릅니다. 이 출력 전에 동일한 명령을 실행했는데 더 이상한 출력이 나왔습니다. py_script에서는 지연이 58밀리초라고 말하고 ping 명령에서는 지연이 16밀리초라고 했습니다.
이러한 차이가 발생하는 이유는 무엇입니까? 어떤 결과가 현실에 가장 가깝습니까?