当前位置: 首页 > news >正文

循环查询指定服务器开放端口(Python)

循环查询指定服务器开放端口列表

# @Time   : 2025/3/22 
# @Author : cookie
# @Desc   :

import socket
import concurrent.futures
from datetime import datetime

# 设置目标IP和端口范围
target_ip = input("请输入目标IP地址: ")
start_port = int(input("请输入起始端口(1): "))
end_port = int(input("请输入终止端口(65535): "))

# 创建一个函数来检查端口是否开放
def scan_port(target_ip, port):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
            socket.setdefaulttimeout(1)  # 设置连接超时时间
            result = sock.connect_ex((target_ip, port))  # 检查端口
            if result == 0:
                print(f"端口 {port} 开放")
    except socket.error as e:
        # 可以记录错误,但扫描不会中断
        pass

# 获取当前时间并开始扫描
start_time = datetime.now()

# 使用线程池进行并发端口扫描
with concurrent.futures.ThreadPoolExecutor(max_workers=100) as executor:
    # 使用列表生成式将所有任务提交给线程池
    executor.map(lambda port: scan_port(target_ip, port), range(start_port, end_port + 1))

end_time = datetime.now()

# 显示扫描所花费的时间
scan_duration = end_time - start_time
print(f"扫描完成! 耗时: {scan_duration}")


在这里插入图片描述

相关文章:

  • mysql如何给字段添加默认值?
  • MySQL数据库宕机快速恢复
  • 蓝光三维扫描技术:汽车零部件检测的精准高效之选
  • STL性能优化方法
  • 数据结构栈和队列
  • 开放生态,无限可能:耘想WinNAS 重新定义您的数字生活
  • nlohmann::json教程
  • ElasticSearch快速入门--实现分词搜索
  • docker-compose安装
  • 初始操作系统---Linux
  • 《HarmonyOS Next状态栏动画实现案例与代码解析》
  • 从node:xxx 到模块系统演进:Node.js 的过去、现在与未来的思考
  • vulhub靶场Web-Machine-N7通关攻略
  • Oracle 启用 Sql 跟踪的方式
  • 【Linux】--- 线程互斥
  • 【保姆级】阿里云codeup配置Git的CI/CD步骤
  • Spring MVC 深度解析:原理、源码剖析与实战
  • Ubuntu22.04 上安装Qt5以及编译MySQL驱动
  • 从 @SpringBootApplication 出发,深度剖析 Spring Boot 自动装配原理
  • centos 9 编译安装 rtpengine (快方式)-使用 debian12 系统自带
  • A股高开高走:宠物经济走强,超3800股收涨,两市成交超1.1万亿元
  • 出生于1991年,石秀清拟提名为铜陵市辖县(区)政府副县(区)长人选
  • 上海将完善隔代照料支持措施:建设老幼共享设施、提高科学育儿指导力度
  • 王毅同丹麦外交大臣会谈,表示在格陵兰问题充分尊重丹麦主权和领土完整
  • 国家统计局:要持续加大好房子建设供应力度,积极推动城市更新行动和保障房建设
  • 国家统计局:下阶段要继续发挥宏观政策作用,促进价格合理回升