首页 > 编程语言 >python ping

python ping

时间:2023-07-27 09:35:47浏览次数:41  
标签:python ping tcping else split import pythonping

前提:最近需要检测大量IP的联通状态,尝试了多种方法,最终选择了使用系统的ping

第一种pythonping

安装

pip install pythonping

使用

from pythonping import ping

res = ping('1.1.1.1')

if 'Request timed out' in str(res):
        不通
else:
      通

使用很简单,但是缺点也很明显:需要root权限,不满足我的需求

第二种tcping

安装

pip install tcping

使用

from tcping import Ping

ping = Ping(ip, port=22)
ping.ping(1)
ret = ping.result.raw
retlist = list(ret.split('\n'))
success = retlist[2].split(',')[1].split(' ')[1]
success 为1时通,为0时不通

这个使用也很简单,而且也不需要root权限,但是这个有一个明显的特点:需要端口,而且默认是80,
所以也不满足我们的需求。

第三种使用系统ping

import platform
import subprocess

# windowns系统需要特殊处理

params = '-n' if platform.system().lower() == 'windows' else '-c'
command = ['ping', params, '1', ip]

if subprocess.call(command) == 0:
    通
else:
  不通

标签:python,ping,tcping,else,split,import,pythonping
From: https://www.cnblogs.com/wangyingblock/p/17584064.html

相关文章

  • Python win11 安装lxml 失败
    如果你有一个项目执行了requirements后,一直提示lxml失败,解决步骤如下1、尝试升级pippython.exe-mpipinstall--upgradepip2、尝试下载包手动安装下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml选择:lxml‑4.9.0‑cp311‑cp311‑win_amd64.whl3、python第三方......
  • python 高德批量获取路径信息
    高德开发者文档:https://lbs.amap.com/api/webservice/guide/api/direction#driving第一步:首先要申请自己的:key第二步:根据自己的需求,从开发者文档。找到自己需要的API第三步:发送请求,解析数据 获取两个坐标之间最优的路线距离importjsonimportrequestsimportopenpyxl......
  • hping3
    hping3测试网络及主机的安全补充说明hping是用于生成和解析TCPIP协议数据包的开源工具。创作者是SalvatoreSanfilippo。目前最新版是hping3,支持使用tcl脚本自动化地调用其API。hping是安全审计、防火墙测试等工作的标配工具。hping优势在于能够定制数据包的各个部分,因此用户......
  • Python使用 - array
    常用操作 常见用法arr1=array.array("i",[1,2])#元素的字节数print(arr1.itemsize)#4print(len(arr1))#2#添加元素arr1.append(3)arr1.append(4)print(len(arr1))#4print(arr1)#array('i',[1,2,3,4])#修改元素arr1[0]=10print(arr1)#......
  • Python使用 - 字符串和二进制的转换
    字符串和二进制的转换,需要用到编码(比如:utf-8,gbk),它起到的主要作用:1)字符转二进制时:根据字符,去编码表查询该字符的二进制值2)二进制转字符时:根据二进制值,去编码表查询该二进制对应的字符 #字符转二进制,也叫编码str_bytes="123abc中文".encode("gbk")print(type(str......
  • Python使用 - struct工具
    转换为二进制a=struct.pack('cc',b"1",b"2")print(type(a))print(a)print(type(b"1"))a=struct.pack('bb',1,127)#signedchar,范围[-128,127],用128会抛异常print(type(a))#<class'bytes'>pr......
  • Python测试用例-unittest-基础
    一个简单的测试用例脚本importunittestclassTestCase(unittest.TestCase):@classmethoddefsetUpClass(cls)->None:print("setUpClass")@classmethoddeftearDownClass(cls)->None:print("tearDownClass")......
  • 使用Python统计下桌面某个文件夹下(含多层子文件夹)具体文件的数量(方法一)
    大家好,我是皮皮。一、前言前几天在Python最强王者群【东哥】问了一个Python自动化办公的问题,一起来看看吧。这个是他自己在实际工作中遇到的需求,正好遇到了这个问题,想着用Python来实现下。二、实现过程这里【郑煜哲·Xiaopang】给了一个提示,使用pathlib.glob()来进行解决,后来......
  • Python基础day53 Django
    web应用的简介因为Django框架是一个专门用来开发web项目的框架1.web应用程序是什么?web应用程序是一种可以通过web访问的应用程序,也就是说只需要一个浏览器即可,不需要其他软件了2.应用程序与有两种模式Django就是开发的B/S应用程序,所以,我们就认为浏览器就是我们......
  • Python学习4
    Python学习(二)1Python集合1.1集合(Set)集合是无序和无索引的集合。在Python中,集合用花括号编写。1.2访问项目您无法通过引用索引来访问set中的项目,因为set是无序的,项目没有索引。但是您可以使用for循环遍历set项目,或者使用in关键字查询集合中是否存在指定值。......