如何用ping命令测试服务器端口?网络连通性检查方法分享

ping服务器端口的代码

import socket
import time
def check_port(host, port, timeout=2):
    """
    检测指定主机和端口的开放状态
    :param host: 目标主机IP或域名
    :param port: 目标端口
    :param timeout: 连接超时时间(秒)
    :return: (状态, 延迟毫秒数) 状态为字符串描述
    """
    start_time = time.time()
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(timeout)
    try:
        s.connect((host, port))
        elapsed = int((time.time() - start_time) * 1000)
        return f"✅ 端口 {port} 开放", elapsed
    except socket.timeout:
        return f"🕒 端口 {port} 连接超时", None
    except ConnectionRefusedError:
        return f"❌ 端口 {port} 拒绝连接", None
    except socket.gaierror:
        return f"❓ 主机名解析失败", None
    except Exception as e:
        return f"⚠️ 未知错误: {str(e)}", None
    finally:
        s.close()
if __name__ == "__main__":
    # 配置检测参数
    host = "example.com"  # 目标主机
    ports = [80, 443, 22, 3389]  # 要检测的端口列表
    print(f"开始检测 {host} 的端口状态...n")
    for port in ports:
        result, latency = check_port(host, port)
        if latency is not None:
            print(f"{result} | 延迟: {latency}ms")
        else:
            print(result)
    print("n检测完成")

功能说明:

  1. TCP 连接检测:使用 socket 尝试建立 TCP 连接
  2. 多端口支持:可一次性检测多个端口状态
  3. 详细状态反馈
    • ✅ 端口开放(成功建立连接)
    • ❌ 端口关闭(连接被拒绝)
    • 🕒 连接超时(可能被防火墙拦截)
    • ❓ 主机名解析失败
    • ⚠️ 其他未知错误
  4. 延迟测量:显示成功连接的网络延迟(毫秒)

使用示例:

# 检测百度的常用端口
host = "www.baidu.com"
ports = [80, 443, 21, 8080]

输出示例:

开始检测 www.baidu.com 的端口状态...
✅ 端口 80 开放 | 延迟: 32ms
✅ 端口 443 开放 | 延迟: 28ms
❌ 端口 21 拒绝连接
❌ 端口 8080 拒绝连接
检测完成

注意事项:

  1. 需要目标服务器响应 TCP 握手(ICMP ping 不可用)
  2. 可能被防火墙干扰(超时不代表端口关闭)
  3. 对 UDP 端口无效(需使用其他技术)
  4. 频繁扫描可能触发安全机制

提示:对于批量扫描需求,可结合 concurrent.futures 模块实现多线程加速检测。

ping服务器端口的代码

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/287800.html

(0)
上一篇 2026年2月8日 14:53
下一篇 2026年2月8日 14:58

相关推荐

  • PHP如何读取数据库记录?PHP读取数据库代码怎么写?

    PHP读取数据库记录是后端开发中最基础也是最核心的操作之一,要实现高效、安全且稳定的数据读取,开发者必须摒弃过时的函数,全面转向PDO(PHP Data Objects)或MySQLi扩展,并严格遵循预处理语句以防止SQL注入,针对大数据量的场景,必须结合索引优化、分页技术以及合理的连接管理,才能在高并发环境下……

    2026年2月28日
    01183
  • 宽带账号密码默认是多少?宽带账号密码默认值

    宽带账号密码默认是网络运维中最高频且最致命的安全隐患之一,绝大多数用户与初级运维人员误以为“默认密码”仅是出厂设置的便利,实则它是黑客攻击、数据窃取及网络资源滥用的首选入口,核心结论是:任何未修改的默认宽带账号密码都必须被视为“裸奔”状态,必须在设备接入网络的瞬间完成强制修改,并配合双重验证与定期轮换机制,构建……

    2026年4月27日
    01061
  • 创建宽带连接图标不见了,电脑怎么创建宽带连接图标

    在Windows 11或Windows 10系统中,通过右键点击桌面空白处选择“新建”并寻找“快捷方式”,输入特定命令代码,是创建宽带连接图标最通用且无需第三方软件的方法;若需更稳定的自动拨号体验,建议直接通过“设置”中的“网络和Internet”选项进行系统级配置,为什么需要手动创建宽带连接图标?系统更新导致……

    2026年5月20日
    0955
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • php网站收录差怎么办,php网站不收录的原因和解决方法

    PHP网站收录差的核心症结往往不在于PHP语言本身,而在于由其动态渲染机制引发的技术架构缺陷、页面加载性能瓶颈以及匮乏的SEO基础优化,解决PHP网站收录问题,必须从服务器响应速度、伪静态化处理、代码冗余清理以及高质量内容产出四个维度进行系统性重构,而非单纯依赖外链建设, 许多开发者误认为PHP不如静态页面利于……

    2026年3月18日
    01101

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注