欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2023年03月05日 16:10:17   作者:兮教授~。  
本文主要介紹了python的ping網(wǎng)絡(luò)狀態(tài)監(jiān)測的實(shí)現(xiàn)(含多IP),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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)用層的一個(gè)服務(wù)命令, 主要是向特定的目的主機(jī)發(fā)送 ICMP(Internet Control Message Protocol 因特網(wǎng)報(bào)文控制協(xié)議)Echo 請求報(bào)文,測試目的站是否可達(dá)及了解其有關(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)計(jì)結(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__':
    #實(shí)現(xiàn)服務(wù)器網(wǎng)絡(luò)狀態(tài)監(jiān)控
    main()
    pass

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

tcping 模塊安裝方法

pip install tcping

Ping多個(gè)ip+定時(shí)

定時(shí)器可參觀這篇博客:http://www.dbjr.com.cn/article/277143.htm

用TCPing寫一個(gè)demo程序,定時(shí)(例如5分鐘)檢測5臺機(jī)器是否在線(網(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)計(jì)結(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 通")

# 定時(shí)
def my_job(text="默認(rèn)值"):
    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分鐘定時(shí)'])



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

運(yùn)行結(jié)果

其中IP和時(shí)間修改以下地方就行

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

相關(guān)文章

最新評論