Python搭建多节点ping

【Python】执行 ping 操作的简单方法 pythonping的使用方法 阅读详情

1.导入

最近看itdog的测速挺帅的,想着自己先做个类似的功能出来,搓了一份源码分享给大家

需求:

需要主服务器放行9090端口,节点服务器放行8080端口

操作系统Centos

需要有Python环境,没有的可以看Centos部署Python代码

Python需要安装requests,flask,json,subprocess这几个库

2.代码

1.主服务端代码

# -*- coding:utf-8 -*-
import requests
import subprocess
from flask import Flask, make_response, jsonify
import json

app = Flask(__name__)

server=['1.1.1.1','2.2.2.2']#添加节点ip
serverch={'1.1.1.1':'香港','2.2.2.2':"美国"}#添加节点ip对应翻译,留空默认直接显示ip

@app.route('/ip=<ip>')
def hello_world(ip):  # put application's code here
    def get_ping_result_check(ip):

        command = 'fping -e '+ip
        p = subprocess.Popen([command],
                             stdin=subprocess.PIPE,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE, shell=True)

        out = p.stdout.read().decode('utf-8')
        if out.find("unreachable") == -1:
            return True
        else:
            return False
    reslist = dict.fromkeys(server)
    for i in range(0,len(server)):
        if get_ping_result_check(server[i]):
            try:
                res=requests.get('http://'+server[i]+':9090/ip='+ip)
                if str(res).find('500')!=-1:
                    reslist[server[i]]='连接超时'
                else:
                    res=res.text
                    reslist[server[i]]=res.replace('\n','')
            except Exception as e:
                reslist[server[i]] = '节点异常'
        else:
            reslist[server[i]]='节点异常'

    reslist=str(reslist)
    for i in range(len(server)):
        reslist=reslist.replace(server[i],serverch[server[i]])
    reslist=eval(reslist)
    response = make_response(json.dumps(reslist,ensure_ascii=False))
    response.headers["Content-Type"] = "application/json;charset=UTF-8"
    return response


if __name__ == '__main__':
    app.config['JSON_AS_ASCII'] = False
    app.run(host="0.0.0.0",port=8080)

server列表是添加服务器节点的IP

serverch字典是添加服务器节点翻译的

2.节点代码

import os
import subprocess
import re
from flask import Flask

app = Flask(__name__)


@app.route('/ip=<ip>')
def hello_world(ip):  # put application's code here
    ping_results = []

    def get_ping_result(count,ip):

        command = 'fping -e '+ip
        p = subprocess.Popen([command],
                             stdin=subprocess.PIPE,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE, shell=True)

        out = p.stdout.read().decode('utf-8')
        return out
    back=get_ping_result('10000', ip)
    back=back.split('(')[1]
    back=back.replace(')','')
    return back

if __name__ == '__main__':
    app.run(host="0.0.0.0",port=9090)

注意!节点端端口请不要改变,不然服务端会连不上

3.安装fping

fping节点服和主服都要安装

wget http://www.fping.org/dist/fping-3.13.tar.gz
tar xzvf fping-3.13.tar.gz
cd fping-3.13
./configure
make
make install

这段过程中可能会报错,没关系,不会有影响,在ssh一行一行输入进入就行了

安装好后输入fping -h出现

就代表成功安装了。

3.运行

运行主服务端和节点服务端代码,然后输入:http://主服务端ip:8080/ip=你要ping的ip或者域名


文章在Python搭建多节点ping-WilliamSun的小窝同步更新

用Python实现PING PING 概述 ping属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地分析和判定网络故障。 PING ,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答)。它是用来检查网络是... 阅读详情

相关推荐

Node-RED实战:5分钟搞定HTTP节点搭建REST API(含完整代码)

本文通过实战案例,详细介绍了如何使用Node-RED的HTTP节点快速搭建REST API。文章从核心的HTTP In和HTTP Response节点入手,演示了如何在5分钟内构建具备完整CRUD功能的待办事项API,并分享了错误处理、数据验证、身份认证等进阶技巧,帮助开发者高效实现API原型与微服务。

weixin_29189381的博客 365

利用Python实现PING命令

一、PING简介 PING(Packet Internet Grope),也称因特网包探索器。PING使用ICMP回送(ECHO)请求和回送(ECHO)应答报文,一般用于测试网络连通性,统计往返时间、丢包率等。PING UNIX命令格式如下: ping [ - Rdfnqrv ] [ - c count ] [ - i wait ] [ - l preload ] [ - p pattern ] [ - s packetsize ] host ...

Small_Teenager的博客 1万+

DigitalOcean多节点LLM训练集群搭建实战

大语言模型(LLM)训练面临显存瓶颈、通信开销与成本失控三大挑战,其本质是分布式计算中数据并行、模型分片与梯度同步的系统工程问题。基于PyTorch DDP与FSDP的多节点训练方案,通过参数分片(FSDP)和确定性网络协同,在保障训练稳定性的同时显著降低单卡显存压力。DigitalOcean凭借低延迟VPC、标准化GPU Droplet(如RTX 6000 Ada)及高IOPS块存储,为中小团队提供了可复现、可迭代、免厂商锁定的轻量级训练底座。本文聚焦于Ubuntu 22.04 + CUDA 12.2环境

cuililai5127的博客 459

使用Python执行ping命令

【代码】使用Python执行ping命令。

十一、的博客 2429

Ubuntu 14.04 搭建 Cassandra 2.1 多节点集群实战

Cassandra 是一款面向高可用与线性扩展的分布式 NoSQL 数据库,其核心基于 Gossip 协议实现去中心化状态同步,并依赖虚拟节点(vnode)机制保障数据均衡分布。理解 listen_address 与 rpc_address 的网络角色分离、num_tokens 参数对负载均衡的决定性影响,是构建稳定集群的基础技术前提。该架构在金融后台、工业物联网及老旧离线系统中仍具不可替代的工程价值,尤其适用于资源受限但需强自治能力的裸金属或虚拟化环境。本文聚焦 Ubuntu 14.04 + Cassan

weixin_34160277的博客 462

Rancher 1.6 + Docker Machine 在 Ubuntu 16.04 的生产级多节点部署指南

容器编排并非只有 Kubernetes 一条路径;在老旧基础设施场景下,轻量、稳定、可运维的容器集群管理方案更具工程价值。Rancher 1.6 以松耦合架构将 Docker Engine 视为可纳管单元,结合 Docker Machine 实现 Ubuntu 16.04 节点的一键初始化与 TLS 安全接入,兼顾兼容性、安全基线与物理拓扑感知调度。其基于标签的亲和性调度、Host/Bridge 网络灵活选型、HTTP 健康检查驱动的灰度升级等能力,特别适配遗留系统迁移、边缘物理服务器及等保合规场景。本文聚

huqiyes的专栏 1336

PING 接口全球版 —— 免费全球多节点 Ping 检测 API接口

PING接口-PLUS全球版使用指南 该接口提供全球20+国家的多节点Ping检测服务,支持3–15秒快速返回延迟数据。通过API调用,用户可指定单个城市节点(如dy=921洛杉矶)或获取全部节点结果(dy=0)。 请求方式: 地址:https://cn.apihz.cn/api/wangzhan/pingplus.php 参数:必填id(用户ID)、key(密钥)、host(目标域名/IP),可选dy(节点编号)。 返回数据:包含各节点延迟(毫秒)、目标IP、节点位置等信息。 示例代码:支持PHP(cUR

apihz的博客 570

Play with Docker零安装学容器:浏览器跑Docker Compose与多节点集群

容器技术的核心在于隔离、可移植与编排能力,其底层依赖Linux命名空间、cgroups及镜像分层原理。Play with Docker(PWD)通过Docker-in-Docker架构,将完整Docker引擎运行在远端Alpine Linux容器中,实现真正的‘零安装’学习体验——无需配置WSL、不兼容M1芯片、不占用本地资源。它天然支持docker-compose、多节点Swarm集群、端口映射与数据持久化等生产级功能,且所有操作100%兼容Docker Desktop与云环境。特别适合新手快速验证Doc

weixin_34372728的博客 427

KKCE:多节点 Ping 网络连通性自动化检测实战

在分布式系统日益普及的今天,运维团队常常面临一个看似简单却极其棘手的问题:如何准确判断遍布各地的服务节点是否真正“可达”?传统的单点 Ping 测试往往只能反映本地网络状况,一旦涉及跨地域、多机房的复杂架构,单一视角的检测结果极易产生误导。当某个区域的用户反馈访问缓慢时,我们很难迅速定位是骨干网波动、特定运营商故障,还是目标服务器本身出现了问题。这种信息盲区不仅延长了故障排查时间,更可能在关键时刻导致误判,影响业务连续性。

37

告别GUI点点点:Formality形式化验证的TCL脚本自动化实战(附完整脚本)

本文详细介绍了如何通过TCL脚本实现Formality形式化验证的全流程自动化,显著提升验证效率并降低错误率。内容涵盖脚本框架解析、参数化设计、验证报告生成及团队协作策略,特别适合芯片设计工程师摆脱传统GUI操作,实现300%以上的效率提升。

weixin_33737134的博客 283

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py和Pandas库,详细演示了如何高效读取HDF5格式文件、理解数据结构、提取关键特征(如传感器数据与剩余使用寿命RUL),并整合为可用于预测性维护分析的DataFrame,帮助研究者和工程师快速上手这一重要的工业时序数据集。

weixin_29083373的博客 279

3分钟搭建网络监控原型:基于Ping的简易方案

最近有个临时需求要验证网络监控的可行性,我尝试用Python+Streamlit快速搭建了一个基于ping命令的监控原型。整个过程比想象中简单,特别适合需要快速验证方案的场景。完成特别流畅,编辑器自带Python环境,写完代码直接点击部署就能生成可访问的Web应用。最惊喜的是不需要操心服务器配置,测试期间遇到问题还能实时调整代码,对快速原型开发非常友好。如果要投入生产环境,还需要增加:邮件告警、多节点监控、历史数据分析等功能。实际测试发现,从零开始到基本功能跑通,代码量不超过100行。

GreyWolf12的博客 956

从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战

本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。

weixin_29089057的博客 139

YAS3FS 多节点集群搭建:SNS 通知实现分布式缓存同步的完整指南

YAS3FS(Yet Another S3-backed File System)是一款基于 FUSE 的 Amazon S3 文件系统工具,本文将手把手教你完成 YAS3FS 多节点集群搭建,并深入讲解如何利用 SNS 通知实现分布式缓存同步,让多台服务器共享同一个 S3 桶时保持数据实时一致。即使你完全没有接触过 FUSE 或 AWS 消息服务,也能照着本教程顺利部署。 ## YAS3FS

gitblog_00220的博客 660

rk3568 点亮双LVDS 屏

承接文章《rk3568点亮LCD(lvds)》中仅仅只能使用亮单LVDS;经过厂商的努力,陆续发布新补丁。目前支持双lvds显示,缺憾是需要自己额外移植相关补丁。受限于通信频率和VOP编码能力,支持最大分辨仍然是1920x1080、60fps。

weixin_35723192的博客 3008

布尔可满足性问题(SAT)深度研究

布尔可满足性问题(Boolean Satisfiability Problem, SAT)是计算机科学和数理逻辑中的一个核心决策问题。其定义为:对于一个给定的布尔逻辑公式,判断是否存在一组对其变量的真值赋值(即,为每个变量指定真 (True) 或假 (False)),使得该公式的最终计算结果为真。如果存在这样的赋值,则称该布尔公式是可满足的 (satisfiable);否则,称其为不可满足的 (unsatisfiable)。

步子哥的博客 497

告别手动Ping:自动化网络测试提升10倍效率

自动化网络质量监测系统主要包括五大功能模块:定时执行ping测试、自动记录测试结果到数据库、异常阈值告警、历史数据对比分析以及生成日报/周报。通过Python+Flask实现Web界面,支持多节点同时测试,大大提升了运维效率。

EmeraldEagle36的博客 1005

通过分子模板构建随机分布在溶液中的纳米颗粒(一)

通过分子模板构建随机分布在溶液中的纳米颗粒 要实现的目标: 1、可以循环建立多个水分子溶液的模型; 2、针对不同水分子数,自动创建文件夹; 3、运行完毕将所有结果自动存储在对应文件夹里; 分子模板的具体教程请见我的博客: https://blog.youkuaiyun.com/qq_43689832/article/details/104443175 1、首先,我们先建立纳米颗粒的分子模板,命名为p_30.txt: 包括两种原子类型。具体格式如下: # LAMMPS molecule file makin.

Rockyoung 2651

PiPPy多节点部署终极指南:跨GPU集群实现大规模模型并行训练

想要在多个GPU节点上高效训练超大规模深度学习模型吗?🤔 PiPPy(Pipeline Parallelism for PyTorch)为您提供了完美的解决方案!作为PyTorch生态中的流水线并行库,PiPPy让跨GPU集群的大规模模型训练变得简单高效。本文将带您深入了解PiPPy多节点部署的完整流程,从基础概念到实战配置,手把手教您实现分布式训练加速。 ## 📊 什么是PiPPy流水线并

gitblog_00699的博客 824

定位教程7---旋转中心标定之方法二

手算相机相对机器人关系

Quintin 6230

从被秒封到稳过Cloudflare!Canvas/WebGL/WebRTC多维度浏览器指纹隐身全实战

反爬和反反爬,本质上是一场持续的博弈,没有100%的隐身,只有不断升级的伪装。网上很多教程只给了个基础的噪声代码,却没讲透反爬的检测逻辑,导致你用了还是被封。这套方案的核心,不是简单的API重写,而是站在反爬的角度,模拟真实用户的所有特征,保证所有指纹的一致性、合理性、完整性。目前这套方案我用了半年,跑了上千万次请求,稳过国内国外99%的主流反爬平台,没有出现过一次因为指纹关联导致的批量封禁。大家有什么更狠的反爬场景,或者更好的伪装技巧,欢迎评论区一起交流。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1194

Linux集群跑MPI总卡住?一个参数搞定OpenMPI多节点连接拒绝问题

本文深入分析了Linux集群中OpenMPI多节点连接拒绝问题的根源,并提供了系统化的解决方案。通过限制MPI使用的网络接口参数`--mca btl_tcp_if_include`,有效解决了多节点运行时卡住的问题,适用于复杂网络环境下的MPI程序部署。

weixin_30591551的博客 334

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何配置kohya_ss分布式推理:多节点负载均衡终极指南 [特殊字符]

kohya_ss是一个强大的Gradio GUI前端,专为[kohya-ss/sd-scripts](https://github.com/kohya-ss/sd-scripts)设计,用于配置和启动Stable Diffusion、SDXL、FLUX等模型的训练运行(LoRA、DreamBooth、微调、TI),无需手动编写命令行。本文将详细介绍如何配置kohya_ss进行分布式推理,实现多节点

gitblog_01090的博客 763

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

DeepSeek-V4-Flash-DSpark多节点部署教程:轻松实现分布式百万Token处理

DeepSeek-V4-Flash-DSpark是一款高性能AI模型,支持分布式部署以处理百万级Token任务。本教程将详细介绍如何通过多节点配置实现高效的分布式推理,让普通用户也能轻松搭建企业级AI服务。 ## 🌟 为什么选择多节点部署? 随着AI模型规模的增长,单节点往往难以满足大吞吐量和低延迟的需求。DeepSeek-V4-Flash-DSpark通过**分布式推理**技术,将计算任务

gitblog_00603的博客 400

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

如何使用ansible-role-k3s构建多节点K3s集群:详细步骤与最佳实践

ansible-role-k3s是一款功能强大的Ansible角色,能够帮助用户轻松构建多节点K3s集群。K3s是一个轻量级的Kubernetes发行版,非常适合在资源受限的环境中部署。本文将详细介绍使用ansible-role-k3s构建多节点K3s集群的步骤和最佳实践,让你快速掌握集群部署的核心要点。 ## 准备工作:环境与依赖检查 ✅ 在开始部署多节点K3s集群之前,需要确保环境满足以下

gitblog_00979的博客 395

3步掌握MLX分布式任务启动:从单机到多节点实战指南

在Apple Silicon芯片上部署分布式机器学习任务时,mlx.launch是连接多台Mac设备的核心工具。你将会学到如何配置主机环境、创建自动化脚本以及调试分布式任务,从而提升多设备协同计算效率。本文将采用"问题场景→核心原理→实践步骤→效果验证"的四段式框架,帮助你从零开始掌握MLX分布式任务启动。 **核心关键词**:MLX分布式启动 **长尾关键词**:mlx.launch多节点配置

gitblog_00238的博客 445
上一篇: Python实现WP博客文章更新提醒
Pythonwill
博客等级 码龄7年 56粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值