欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 【亲测有效】icmp,tcpping工具源码

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

2024/10/25 8:25:21 来源:https://blog.csdn.net/jrckkyy/article/details/141680225  浏览:    关键词:【亲测有效】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()

使用效果:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com