亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python的ping網(wǎng)絡(luò)狀態(tài)監(jiān)測的實現(xiàn)(含多IP)

 更新時間:2023年03月05日 16:10:17   作者:兮教授~。  
本文主要介紹了python的ping網(wǎng)絡(luò)狀態(tài)監(jiān)測的實現(xiàn)(含多IP),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

ping 基本概念

ping (Packet Internet Groper)是一種因特網(wǎng)包探索器,用于測試網(wǎng)絡(luò)連接量的程序。Ping是工作在 TCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)中應(yīng)用層的一個服務(wù)命令, 主要是向特定的目的主機發(fā)送 ICMP(Internet Control Message Protocol 因特網(wǎng)報文控制協(xié)議)Echo 請求報文,測試目的站是否可達及了解其有關(guān)狀態(tài) 。

基于tcping python模塊的網(wǎng)絡(luò)狀態(tài)監(jiān)測

from tcping import Ping

def pingip(ipAddress,request_nums):
    """
    ping ip
    :param ipAddress:
    :param request_nums: 請求次數(shù)
    :return: 丟包率loss和統(tǒng)計結(jié)果res
    """
    ping = Ping(ipAddress,80,3)
    ping.ping(request_nums)
    res = ping.result.table
    ret = ping.result.raw
    retlist = list(ret.split('\n'))
    loss = retlist[2].split(',')[3].split(' ')[1]  # 獲取丟包率
    return loss, res
    
def main():
    # 獲取待ping的服務(wù)器地址信息

    ipAddress = "x.x.x.x"
    # 調(diào)用pingip方法得到丟包率
    loss, res = pingip(ipAddress, 3)
    if float(loss.strip('%')) / 100 <= 0.1:   # 0.1為自定義丟包率閾值,可修改
        print("ping 不通")
    else:
        print("ping 通")

if __name__ == '__main__':
    #實現(xiàn)服務(wù)器網(wǎng)絡(luò)狀態(tài)監(jiān)控
    main()
    pass

tcping是一個類似于 ping 的系統(tǒng)工具, 檢測在連接 tcp 時候的延遲, 比較正確是反應(yīng)出網(wǎng)絡(luò)的延遲情況,畢竟 tcp 用途比較廣。
雖然和 icmp 的 ping 原理不同,ping 命令也能很大程度上反映出網(wǎng)絡(luò)的延遲。

tcping 模塊安裝方法

pip install tcping

Ping多個ip+定時

定時器可參觀這篇博客:http://chabaoo.cn/article/277143.htm

用TCPing寫一個demo程序,定時(例如5分鐘)檢測5臺機器是否在線(網(wǎng)絡(luò)是否通)?

# -*- coding:utf-8 -*-
import time
import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
from tcping import Ping


def pingip(ipAddress, request_nums):
    """
    ping ip
    :param ipAddress:
    :param request_nums: 請求次數(shù)
    :return: 丟包率loss和統(tǒng)計結(jié)果res
    """
    ping = Ping(ipAddress, 80, 3)
    ping.ping(request_nums)
    res = ping.result.table
    ret = ping.result.raw
    retlist = list(ret.split('\n'))
    loss = retlist[2].split(',')[3].split(' ')[1]  # 獲取丟包率
    return loss, res


def main():
    # 獲取待ping的服務(wù)器地址信息
    line_ping = ['14.215.177.39', '14.215.177.39', '14.215.177.39', '14.215.177.39', '14.215.177.39']
    for ipAddress in line_ping:
        # 調(diào)用pingip方法得到丟包率
        loss, res = pingip(ipAddress, 3)
        if float(loss.strip('%')) / 100 <= 0.1:  # 0.1為自定義丟包率閾值,可修改
            print("ping 不通")
        else:
            print("ping 通")

# 定時
def my_job(text="默認值"):
    print(text, time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
    main()


sched = BlockingScheduler()
sched.add_job(my_job, 'interval', minutes=5, args=['5分鐘定時'])



if __name__ == '__main__':
    # 實現(xiàn)服務(wù)器網(wǎng)絡(luò)狀態(tài)監(jiān)控
    sched.start()
    pass

運行結(jié)果

其中IP和時間修改以下地方就行

到此這篇關(guān)于python的ping網(wǎng)絡(luò)狀態(tài)監(jiān)測的實現(xiàn)(含多IP)的文章就介紹到這了,更多相關(guān)python ping網(wǎng)絡(luò)狀態(tài)監(jiān)測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏

相關(guān)文章

最新評論