【亲测有效】icmp,tcpping工具源码

2024-08-30 01:20

本文主要是介绍【亲测有效】icmp,tcpping工具源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

icmp,tcpping工具源码

import socket
import subprocess
import platform
import time
import sysdef icmp_ping(host, count=4):param = '-n' if platform.system().lower() == 'windows' else '-c'try:# 执行 ping 命令result = subprocess.run(['ping', param, str(count), host], capture_output=True, text=True)# 输出 ICMP ping 结果并及时刷新if result.returncode == 0:print(f"ICMP Ping {host} 成功!")print(result.stdout)else:print(f"ICMP Ping {host} 失败!")print(result.stderr)sys.stdout.flush()except Exception as e:print(f"执行 ICMP ping 命令时发生错误: {e}")sys.stdout.flush()def tcp_ping(host, port, timeout=2):try:sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.settimeout(timeout)start_time = time.time()sock.connect((host, port))end_time = time.time()connection_time = end_time - start_timeprint(f"TCP Ping {host}:{port} 成功!连接时间: {connection_time:.4f} 秒")sock.close()except socket.timeout:print(f"TCP Ping {host}:{port} 失败!连接超时")except ConnectionRefusedError:print(f"TCP Ping {host}:{port} 失败!连接被拒绝")except Exception as e:print(f"执行 TCP ping 时发生错误: {e}")# 及时刷新标准输出sys.stdout.flush()def main():# 执行初始的 ICMP 和 TCP ping 操作initial_host = 'www.qq.com'print(f"正在测试初始主机: {initial_host}")icmp_ping(initial_host)tcp_ping(initial_host, 80)# 等待用户输入域名、网址或 IP 地址进行测试while True:user_input = input("请输入要测试的域名、网址或 IP 地址 (输入 'exit' 退出): ")if user_input.lower() == 'exit':print("退出程序。")break# 用户输入端口号port_input = input("请输入端口号(默认为 80,直接回车跳过):")port = 80  # 默认端口if port_input.strip():  # 如果用户输入了端口号try:port = int(port_input.strip())except ValueError:print("端口号无效,将使用默认端口 80")port = 80# 执行 ICMP 和 TCP ping 操作print(f"正在测试用户输入主机: {user_input},端口: {port}")icmp_ping(user_input)tcp_ping(user_input, port)if __name__ == '__main__':main()

使用效果:

这篇关于【亲测有效】icmp,tcpping工具源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1119400

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截图任务,还能快速编辑、标注甚至保存多种格式的图片。这款工具能满足这些需求吗? PixPin不仅支持全屏、窗口、区域截图等基础功能,它还可以进行延时截图,让你捕捉到每个关键画面。不仅如此

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显