python ping

前提:最近需要检测大量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:
  不通
posted @   yingzi__block  阅读(154)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2022-07-27 python项目读Oracle数据遇到了中文乱码
点击右上角即可分享
微信分享提示