スクリプト遅延出力とpingコマンドの違い

スクリプト遅延出力とpingコマンドの違い

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と比較したいと思います。だから私は両方をしました(図を参照)。 サブプロセスとping出力

ただし、ご覧のように出力が異なります。この出力の前に同じコマンドを実行しましたが、さらに奇妙な出力が出ました。 py_scriptでは遅延が58ミリ秒で、pingコマンドでは遅延が16ミリ秒でした。

このような違いが発生するのはなぜですか?どのような結果が現実に最も近いですか?

ベストアンサー1

おすすめ記事