iT邦幫忙

0

[python] ping ip 取得延遲時間

有辦法藉由python取得延遲時間如下斜體部分

目前只會做到ping host取得狀態

import os
hostname = "google.com" #example
response = os.system("ping -c 1 " + hostname)

if response == 0:
  print(hostname, 'is up!')
else:
  print(hostname, 'is down!')

想要把延遲時間紀錄於純文字中

謝謝了

Ping 8.8.8.8 (使用 32 位元組的資料):
回覆自 8.8.8.8: 位元組=32 時間=12ms TTL=52
回覆自 8.8.8.8: 位元組=32 時間=3ms TTL=52
回覆自 8.8.8.8: 位元組=32 時間=2ms TTL=52
回覆自 8.8.8.8: 位元組=32 時間=2ms TTL=52

ccutmis iT邦高手 9 級 ‧ 2019-11-30 20:48:18 檢舉
不用那麼麻煩 用pipe輸出文字檔就好了 例如:
os.system("ping " + hostname+" > pingRecord.txt")

執行結果就是會在你的python程式執行目錄底下多出一個pingRecord.txt 內容就是你要的延遲記錄
如果要同時存入又同時顯示出來可以怎麼做呢?我自己是用os.system('cat response.txt')加在for迴圈裡 不知道還有沒有其他更快速的方法?

1 個回答

0
froce
iT邦大師 3 級 ‧ 2019-11-30 18:50:38

要用subprocess

import subprocess
hostname = "google.com"
response = subprocess.check_output("ping -c 1 " + hostname, shell=True, text=True, encoding="utf8")

我要發表回答

立即登入回答