私は、DNSサーバへの応答時間とWebサーバからの取得データの応答時間を測定するためにpythonスクリプトに取り組んでいます。Python - DNSと往復時間を測定する
- まずmodule.Letの呼び出しにソケットを使用してこの機能をDNSルックアップ時間を測定
- は、次のように私が取ったアプローチは、サブプロセスモジュールにpingコマンドを使用して、Webサーバからの応答を測定します。この関数を呼び出してみましょう。
私はまず関数Aを呼び出し、次に関数Bを呼び出します。
解決策はうまくいきますが、これが正しいアプローチかどうか疑問があります。
なぜなら、DNSルックアップは2回呼び出されています(関数Bでは、関数A &で1回)。だから、関数BでDNSルックアップ時間は、常に機能A.
機能で計算された時間コード
startTime = datetime.datetime.now()
ip = socket.gethostbyname(host)
endTime = datetime.datetime.now()
diff = (endTime - startTime).total_seconds() * 1000
関数Bコード
resp = subprocess.popen(['ping','-c 3','host.com'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
out,err = resp.communicate()
おかげ
まあ、DNS応答は、権威のある情報源ではなく、キャッシングプロキシから来る可能性が高いので、その情報が何を使用しているのかは明らかではありません。 Webページを取得するのにかかる時間を測定しようとしている場合、pingは実際にはあまり使用されません。あなたは何を達成しようとしていますか? – Aya
ありがとう。私はネットワークレベルのプログラミングを自分自身で学習しようとしています。これは私が試している簡単な作業です。私は往復時間を計算するためにpingからurllibに変更しました – slysid