[英]How to check the status of ping in python
我正在處理 python 項目,我需要 ping ip address
以檢查它是在線還是離線。 為此,我參考了網上的大部分問題和答案。 以下是我首先嘗試過的:
response = os.system("ping -c 1 " + ip_address)
if response == 0:
print("Online")
else:
print("Offline")
上述方法工作正常,但如果我們有Reply from <ip>. Destination host unreachable
Reply from <ip>. Destination host unreachable
,然后它也說Online
而實際上它應該是Offline
。
我嘗試的另一個解決方案是檢查 ping 命令的 output:
cmd = "ping -c 1 " + ip_address
res = (subprocess.check_output(cmd, shell=True))
res = res.decode("utf-8")
if 'unreachable' in res or 'timed out' in res or '100% packet loss' in res:
print("Offline")
else:
print("Online")
在這種方法中,我正在檢查響應是否包含unreachable
或timed out
或100% packet loss
(僅在 linux 的情況下),然后我說它的Offline
或Online
。 此解決方案在所有情況下都運行良好,但有時會引發錯誤Command 'ping -c 1 <ip>' returned non-zero exit status 1.
我還需要確保我正在編寫的代碼可以在Windows
和Ubuntu
上運行。
我無法理解檢查 ping 響應並決定是Online
還是Offline
的最干凈和最簡單的方法是什么。 誰能幫幫我嗎。 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.