當前位置:
首頁 > 知識 > python 判斷網路連通

python 判斷網路連通

開發中偶爾需要判斷網路的連通性,沒有什麼方法比 ping 更直接了當,通常檢查網路情況都是運行命令ping www.baidu.com ,查看輸出信息即可。

C:Users>ping www.baidu.com

正在 Ping www.baidu.com [61.135.169.125] 具有 32 位元組的數據:

來自 61.135.169.125 的回復: 位元組=32 時間=4ms TTL=57

來自 61.135.169.125 的回復: 位元組=32 時間=7ms TTL=57

來自 61.135.169.125 的回復: 位元組=32 時間=9ms TTL=57

來自 61.135.169.125 的回復: 位元組=32 時間=9ms TTL=57

61.135.169.125 的 Ping 統計信息:

數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),

往返行程的估計時間(以毫秒為單位):

最短 = 4ms,最長 = 9ms,平均 = 7ms

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

簡單方法

python執行批處理用多種方法,考慮到我們僅僅用於驗證網路連通性,只需要最終的結果,os.system()方法最合適,執行cmd命令,並返回進程執行退出錯誤碼。

import os

exit_code = os.system("ping www.baidu.com")

if exit_code:

raise Exception("connect failed.")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

網路連通 exit_code == 0,否則返回非0值。

高級方法

  • 獲取訪問域名的IP地址。正則表達式提取 [61.135.169.125] 數據。
  • 獲取網路實際連通的情況。正則表達式提取 TTL 和 時間 判斷當前的網路狀況。

使用 subprocess 管道調用的方式獲取控制台輸出信息,然後在使用正則表達式提取關鍵數據。

小結

相比其他方法判斷網路連通性,命令行執行 ping 的方案實現簡單、快捷、有效。

python 判斷網路連通

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

JS獲取url參數
動態添加控制項及刪除

TAG:程序員小新人學習 |