Shell 实现探测一批IP的443端口

发布时间: 更新时间: 总字数:620 阅读时间:2m 作者: IP上海 分享 网址

Shell 实现探测一批 IP 的 443 端口

实现

以下是一个用于探测一批 IP 的 443 端口是否通的 Linux 脚本:

#!/bin/bash

# 定义IP列表文件路径
ip_file="ip.txt"

# 检查文件是否存在
if [ ! -f "$ip_file" ]; then
    echo "错误:IP列表文件 $ip_file 不存在!"
    exit 1
fi

# 检查是否安装了nc(netcat)
if ! command -v nc &> /dev/null; then
    echo "未找到 'nc' 命令,请安装 netcat 工具包。"
    exit 1
fi

# 读取并处理每个IP地址
while IFS= read -r ip; do
    # 跳过空行
    if [ -z "$ip" ]; then
        continue
    fi

    # 使用nc探测443端口(设置超时为2秒)
    if timeout 2 nc -z "$ip" 443 > /dev/null 2>&1; then
        echo -e "\033[32m✅ $ip:443 端口通\033[0m"
    else
        echo -e "\033[31m❌ $ip:443 端口不通\033[0m"
    fi

done < "$ip_file"

使用说明:

  1. 准备 IP 列表文件 创建一个名为 ip.txt 的文本文件,每行一个 IP 地址或域名,例如:

    google.com
    192.168.1.1
    8.8.8.8
    
  2. 保存脚本文件 将上述脚本保存为 check_ports.sh

  3. 赋予执行权限

    chmod +x check_ports.sh
    
  4. 运行脚本

    ./check_ports.sh
    

功能说明:

  • 自动检测系统是否安装了 nc(netcat)。
  • 使用 timeout 设置最大等待时间为 2 秒,防止脚本卡住。
  • 支持 IP 地址和域名。
  • 输出结果带有颜色提示(绿色表示通,红色表示不通)。
  • 自动跳过空行。

注意事项:

  • 如果系统没有安装 nc,请使用包管理器安装(如 netcatnmap-ncatopenbsd-netcat)。
  • 若网络环境存在防火墙或代理,可能影响检测结果。
  • 若 IP 数量较多,可考虑并行处理以提高效率(需扩展脚本)。

示例输出:

✅ google.com:443 端口通
❌ 192.168.1.1:443 端口不通
✅ 8.8.8.8:443 端口通

该脚本适用于基本的网络连通性检测,适用于运维、安全审计等场景。

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数