You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell实现CSV中IP与所有端口组合的Test-NetConnection循环脚本

解决CSV中所有IP与所有端口的组合连通性测试问题

你当前的脚本只能测试CSV每行对应的IP和端口,没法实现每个IP与所有端口组合测试的需求,而且还没处理CSV中空端口的情况。要实现需求,确实需要先整理出所有独立的IP和端口列表,再通过双重循环完成组合测试,具体修改如下:

步骤说明

  1. 先从CSV里提取所有有效的非空端口(去重+转成整数,避免无效值)
  2. 提取所有IP地址(包括那些Port为空的IP)
  3. 用双重foreach循环,让每个IP依次和每个端口做连通性测试

修改后的PowerShell脚本

$csv_path = Read-Host -Prompt "Enter file path"

$csv = Import-Csv -Path $csv_path

# 提取所有有效非空端口,去重并转为整数
$ports = $csv | Where-Object { $_.Port -and $_.Port -match '^\d+$' } | Select-Object -ExpandProperty Port -Unique | ForEach-Object { [int]$_ }

# 提取所有独立的IP地址
$ips = $csv | Select-Object -ExpandProperty IP -Unique

# 遍历每个IP与每个端口的组合
foreach ($ip in $ips) {
    foreach ($port in $ports) {
        Write-Host "正在测试: $ip : $port" -ForegroundColor Cyan
        Test-NetConnection -ComputerName $ip -Port $port -InformationLevel Detailed
        Write-Host "-----------------------------------------" -ForegroundColor Gray
    }
}

关键细节

  • 过滤端口时用正则^\d+$确保端口是纯数字,避免CSV里的无效字符
  • Select-Object -Unique避免重复测试同一个端口
  • 即使CSV里某个IP对应的Port为空,依然会参与所有端口的测试,符合你的需求

内容的提问来源于stack exchange,提问作者S K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 01:52:08