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)
スクリプトの出力値と連続したping値を8.8.8.8と比較したいと思います。だから私は両方をしました(図を参照)。
ただし、ご覧のように出力が異なります。この出力の前に同じコマンドを実行しましたが、さらに奇妙な出力が出ました。 py_scriptでは遅延が58ミリ秒で、pingコマンドでは遅延が16ミリ秒でした。
このような違いが発生するのはなぜですか?どのような結果が現実に最も近いですか?