ping 基本概念

ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 [1] 。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态 [2] 。

ping 命令在程序开发时不易使用

ping 命令在Windows系统和Linux系统上参数使用有所不同,且返回是中文字符还是英文字符导致程序开发时需要考虑各种场景,不便于使用。
ping的参数
  ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list] [-w timeout]
  
使用ping时尽量加参数
Windows下ping命令的次数参数为 -n
Linux下ping命令的次数参数为 -c

import platform
param = '-n' if platform.system().lower()=='windows' else '-c

基于tcping python模块的网络状态监测

考虑ping命令不便于程序开发,经调研使用基于tcping python 模块的网络状态监测,监测脚本参考如下:


from tcping import Pingdef pingip(ipAddress,request_nums):"""ping ip:param ipAddress::param request_nums: 请求次数:return: 丢包率loss和统计结果res"""ping = Ping(ipAddress,80,3)ping.ping(request_nums)res = ping.result.tableret = ping.result.rawretlist = list(ret.split('\n'))loss = retlist[2].split(',')[3].split(' ')[1]  # 获取丢包率return loss, resdef main():# 获取待ping的服务器地址信息ipAddress = "192.x.x.x"# 调用pingip方法得到丢包率loss, res = pingip(ipAddress, 3)if float(loss.strip('%')) / 100 <= 0.1:   # 0.1为自定义丢包率阈值,可修改print("ping 不通")else:print("ping 通")if __name__ == '__main__':#实现服务器网络状态监控main()pass

tcping是一个类似于 ping 的系统工具, 检测在连接 tcp 时候的延迟, 比较正确是反应出网络的延迟情况,毕竟 tcp 用途比较广。
虽然和 icmp 的 ping 原理不同,ping 命令也能很大程度上反映出网络的延迟。

tcping 模块安装方法
pip install tcping
ps:加速下载安装过程 可利用pip镜像源下载 常用的镜像源见 镜像源链接

【Reference】
1、百度百科 ping
2、tcping 项目介绍
3、tcping 项目源码

基于python的 ping 网络状态监测方法 亲测有效相关推荐

  1. Ubuntu连接不了网络的解决方法亲测可行经验

    突然发现Ubuntu连不上网络,网络打问号或者右上角也没有网络图标:楼主一般通过前两步就解决了,大家自行查阅网络服务名称,OK直接进入正题 通过命令行方式重启网络 如果你使用的 Ubuntu 服务器版 ...

  2. Windows下Python包和模块的安装方法(亲测手动安装)

    1.pip安装 上一章中,介绍了Anaconda的安装,安装好Anaconda后,就默认安装了包管理工具pip.有的人喜欢使用easy_install,但是这需要你先安装easy_install,其实 ...

  3. JAVAWeb开发(基于分片的网络状态查询方法、装置及存储介质)

    本文基于分片的网络状态查询方法.装置及存储介质已是申请的专利.本人为第一发明人,这里给出来是提供一种写专利的范本,仅供参考. 专利申请号:CN202110346967.5 正文部分: 技术领域 本申请 ...

  4. linux 查看san链路状态,Linux下查看网络状态的方法

    当我的设备在机房,懒得去查看网线连接情况:或者设备在远端,没有条件让眼睛亲临现场,我需要在终端查看设备网络接口的物理连接状态.基于此种场景,我就了解了几种关于命令查看网络状态的方法. 1. ifcon ...

  5. 基于 Python 的全国空气质量监测与可视化分析平台

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 空气质量优劣程度与一个城市的综合竞争力密切相关,它直接影响到投资环境和居民健康,因此越来越受到政府和 ...

  6. 基于Python的BP网络实现手写数字识别

    资源下载地址:https://download.csdn.net/download/sheziqiong/86790047 资源下载地址:https://download.csdn.net/downl ...

  7. python人脸深度识别_基于Python的深度学习人脸识别方法

    基于 Python 的深度学习人脸识别方法 薛同来 ; 赵冬晖 ; 张华方 ; 郭玉 ; 刘旭春 [期刊名称] <工业控制计算机> [年 ( 卷 ), 期] 2019(032)002 [摘 ...

  8. python应用如何实现升级_一种基于Python实现BMC批量升级的方法与流程

    本发明涉及BMC批量升级,尤其涉及一种基于Python实现BMC批量升级的方法. 背景技术: 随着现代服务器主板技术的发展,主板设计形态复杂多变.无论是设计成本还是后期使用过程中的维护成本都很高.如何 ...

  9. 基于Python实现的网络爬虫项目——多线程下载小说并保存为txt文件(包含完整代码及注释)

    基于Python实现的网络爬虫项目--多线程下载小说并保存为txt文件(包含完整代码及注释) 一.确立预期目标 二.完成项目所需工具 三.项目需要解决的问题 问题一 问题二 问题三 问题四 问题五 问 ...

最新文章

  1. mysql proxy读写分离实现_使用mysql-proxy实现读写分离
  2. MySQL中数据库的操作
  3. Android移植的Box2D
  4. 百度NLP模块使用手册——深度直击最新进展
  5. 批判性思维-真理连贯论
  6. python实用案例教程第四章答案_python 入门到实践第四章案例
  7. 唤起Android手机中已安装的地图应用
  8. 防火墙的三种工作模式介绍(路由模式、透明模式(网桥)、混合模式)
  9. 【C++】阶段性学习总结(一)
  10. Matlab-多曲线画法和点标记
  11. Splay Tree
  12. java编程之数字魔方(N阶数字魔方和数字旋转魔方)
  13. 网盘搜索神器php源码,127网盘搜索源码|网盘资源搜索神器|thinkphp3.1.3框架开发的...
  14. python做工控机_工控机折腾小记
  15. BCM ESW芯片和Marvell CAT芯片的比较
  16. HD2014 青年歌手大奖赛_评委会打分
  17. abb机器人指令手册_ABB机器人新示教器Touch Jog
  18. The Friendship That Made Google Huge
  19. 14种植物放入室内的奇异功效,为自己的健康而转
  20. 【Nginx】Nginx在大型网络框架中的应用

热门文章

  1. Web前端之CSS层叠样式表相关案例
  2. pythonstdin_关于python:从sys.stdin接收输入,非阻塞
  3. 数据分析必看的oCPM/oCPC核心知识点
  4. Linux启动过程——EFI
  5. Android开发学习笔记整理(9)-Adapter、ListView和GridView
  6. 机器学习:CS 229 - Machine Learning - Supervised Learning cheatsheet
  7. python:兔子繁殖问题
  8. 电信获取光猫超级密码
  9. 爬虫日记(6):beautifulsoup的基本使用2
  10. 程序员常用软件介绍--持续更新