ping ww..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python 判斷網絡連通的實現方法

發(fā)布時間:2020-09-02 13:45:30 來源:腳本之家 閱讀:232 作者:shijc_csdn 欄目:開發(fā)技術

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

C:\Users>ping www.baidu.com
正在 Ping www.baidu.com [61.135.169.125] 具有 32 字節(jié)的數據:
來自 61.135.169.125 的回復: 字節(jié)=32 時間=4ms TTL=57
來自 61.135.169.125 的回復: 字節(jié)=32 時間=7ms TTL=57
來自 61.135.169.125 的回復: 字節(jié)=32 時間=9ms TTL=57
來自 61.135.169.125 的回復: 字節(jié)=32 時間=9ms TTL=57
61.135.169.125 的 Ping 統(tǒng)計信息:
 數據包: 已發(fā)送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
 最短 = 4ms,最長 = 9ms,平均 = 7ms

簡單方法

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

import os
exit_code = os.system('ping www.baidu.com')
if exit_code:
 raise Exception('connect failed.')

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

高級方法

獲取訪問域名的IP地址。正則表達式提取 [61.135.169.125] 數據。

獲取網絡實際連通的情況。正則表達式提取 TTL 和 時間 判斷當前的網絡狀況。

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

小結

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

以上這篇python 判斷網絡連通的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI