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:
不通
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2022-07-27 python项目读Oracle数据遇到了中文乱码