Python利用pythonping处理ping的示例详解

作者:玩转测试开发 时间:2023-08-12 00:28:45 

简介

ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。ping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断TCP/IP参数是否设置正确,以及运行是否正常、网络是否通畅等。

历史攻略

Python:subprocess模块

Ping命令可以进行以下操作

1、通过将ICMP(Internet控制消息协议)回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接。

2、每个发送的数据包最多等待一秒。

3、打印已传输和接收的数据包数。

需要注意的是,Ping成功并不一定就代表TCP/IP配置正确,有可能还要执行大量的本地主机与远程主机的数据包交换,才能确信TCP/IP配置的正确性。如果执行ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,ping成功只保证当前主机与目的主机间存在一条连通的物理路径。

安装

pip install pythonping

案例源码1

os模块的下ping的方式,易造成执行堵塞,并且提取比较繁琐。

# -*- coding: utf-8 -*-
# time: 2022/7/31 11:26
# file: main.py
# 公众号: 玩转测试开发
import os
cmd = "ping www.baidu.com"
message = os.system(cmd)
print("*" * 100)
print(message)

案例源码2

pythonping模块处理ping,无堵塞现象,并且易于提取。

# -*- coding: utf-8 -*-
# time: 2022/11/18 11:26
# file: ping-demo.py
# 公众号: 玩转测试开发
from pythonping import ping
from colorama import Fore, Back, Style

def check_online(ip: str):
   message = ping(ip)
   print(message)
   success_ping = "Reply"
   if success_ping in str(message):
       print(Fore.GREEN + Style.BRIGHT + f"localhost to - {ip} Success.")
   else:
       print(Fore.RED + Style.BRIGHT + f"localhost to - {ip} Fail.")

if __name__ == '__main__':
   check_online("14.215.177.39")
   print(Style.RESET_ALL)
   check_online("111.112.113.114")

执行2结果:

Python利用pythonping处理ping的示例详解

即:通过pythonping的结果有2个,通: 回复字节 Reply bytes,不通:请求超时 Request timed out,来快速判断ping的结果,从而快速得到结果。

来源:https://blog.csdn.net/hzblucky1314/article/details/127921344

标签:Python,pythonping,ping
0
投稿

猜你喜欢

  • 如何安装SQL Server 2012群集

    2024-01-14 23:35:09
  • 总结Python连接CS2000的详细步骤

    2023-04-21 20:26:33
  • Python统计时间内的并发数代码实例

    2022-02-17 18:24:16
  • Mootools 1.2教程(9)——输入过滤第二部分(字符串)

    2008-12-01 12:25:00
  • python简单获取数组元素个数的方法

    2023-03-08 15:39:29
  • Vue2实现组件props双向绑定

    2024-05-08 09:33:25
  • perl中chomp的使用介绍(chop和chomp函数区别)

    2022-09-01 16:04:18
  • Keras:Unet网络实现多类语义分割方式

    2022-02-26 16:36:49
  • python数据结构之图的实现方法

    2022-12-29 04:59:38
  • Python查找最长不包含重复字符的子字符串算法示例

    2021-05-25 23:05:02
  • python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法

    2021-12-16 16:24:37
  • vue3组合式API中setup()概念和reactive()函数的用法

    2024-05-22 10:42:13
  • python根据京东商品url获取产品价格

    2022-01-26 12:14:31
  • 文档对象模型DOM通俗讲解

    2024-05-13 09:36:55
  • python爬虫之爬取笔趣阁小说

    2021-09-19 19:18:05
  • Python中itertools库的四个函数介绍

    2021-05-04 14:34:05
  • Android ProgressBar进度条和ProgressDialog进度框的展示DEMO

    2023-11-20 01:15:43
  • vue 遮罩层阻止默认滚动事件操作

    2024-04-30 08:42:25
  • 优雅地扩大链接响应区域

    2010-09-25 13:04:00
  • Python3 assert断言实现原理解析

    2023-06-11 20:39:33
  • asp之家 网络编程 m.aspxhome.com