python、ruby、go、java写的端口扫描工具

编写的简单端口扫描器的示例代码

python

python 复制代码
import socket

def scan_ports(host, port_range):
    open_ports = []
    for port in range(*port_range):
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            s.settimeout(1)
            if s.connect_ex((host, port)) == 0:
                open_ports.append(port)
    return open_ports

host = "127.0.0.1"
port_range = (1, 1025)
open_ports = scan_ports(host, port_range)
print(f"Open ports on {host}: {open_ports}")

ruby

ruby 复制代码
require 'socket'
require 'timeout'

def scan_ports(host, port_range)
  open_ports = []
  port_range.each do |port|
    begin
      Timeout::timeout(1) do
        TCPSocket.new(host, port).close
        open_ports << port
      end
    rescue Errno::ECONNREFUSED, Timeout::Error
    end
  end
  open_ports
end

host = "127.0.0.1"
port_range = 1..1024
open_ports = scan_ports(host, port_range)
puts "Open ports on #{host}: #{open_ports}"

go

go 复制代码
package main

import (
    "fmt"
    "net"
    "strconv"
    "time"
)

func scanPort(host string, port int) bool {
    address := host + ":" + strconv.Itoa(port)
    conn, err := net.DialTimeout("tcp", address, time.Second)
    if err != nil {
        return false
    }
    defer conn.Close()
    return true
}

func main() {
    host := "127.0.0.1"
    var openPorts []int
    for port := 1; port <= 1024; port++ {
        if scanPort(host, port) {
            openPorts = append(openPorts, port)
        }
    }
    fmt.Printf("Open ports on %s: %v\n", host, openPorts)
}

java

java 复制代码
import java.io.IOException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class PortScanner {
    public static List<Integer> scanPorts(String host, int startPort, int endPort) {
        List<Integer> openPorts = new ArrayList<>();
        for (int port = startPort; port <= endPort; port++) {
            try (Socket socket = new Socket(host, port)) {
                openPorts.add(port);
            } catch (IOException ignored) {
            }
        }
        return openPorts;
    }

    public static void main(String[] args) {
        String host = "127.0.0.1";
        List<Integer> openPorts = scanPorts(host, 1, 1024);
        System.out.println("Open ports on " + host + ": " + openPorts);
    }
}
相关推荐
quantdash_cc13 分钟前
股票历史数据为什么比实时行情更重要?回测结果失真的根源可能就在 K 线数据
开发语言·python·数据分析·量化交易·股票数据·quantdash
Web3&Basketball41 分钟前
LLM 峰谷定价怎么吃满:一个能对账的错峰调度器
python·性能优化·大模型·任务调度·成本优化·deepseek·推理优化
2601_9622186143 分钟前
万象生鲜系统订单全生命周期状态同步技术实现业务可视
大数据·数据库·人工智能·python·算法
FOAF-lambda1 小时前
uiautomation-new 控件方位的使用
开发语言·python
OKkankan1 小时前
LangChain能力详解!:从工具调用到 LangSmith——让聊天模型具备实时交互能力!
开发语言·python·langchain
2601_962298273 小时前
Python自动化脚本的编写01
python·appium·自动化脚本·web自动化·应收账款管理
AIFQuant3 小时前
Python实时外汇行情接入实战:WebSocket与REST K线查询
开发语言·python·websocket
babe小鑫3 小时前
生物统计学专业校招:SAS、R、Python学习顺序实用指南
python·学习·r语言
vx_Biye_Design3 小时前
springboot游泳馆系统93765-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·spring·课程设计
固定资产管理系统软件4 小时前
该去哪里找专业靠谱的智慧智能设备固定资产管理系统?
人工智能·python