2026年3月20日金曜日

パケット送出確認

Copilotに作ってもらったスクリプト

# ============================================
# 並列 TCP ポート疎通確認(全宛先を順番に3回)
# ============================================

# 試行回数
$RepeatCount = 3

# チェック対象リスト
$Targets = @(
    @{ IP = "100.100.100.1"; Port = 10443 },
    @{ IP = "200.200.200.2"; Port = 443 }
    # 必要に応じて追加
)

Write-Host "=== 並列 TCP ポート疎通確認開始 ==="
Write-Host "全宛先を $RepeatCount 回チェックします"
Write-Host ""

for ($round = 1; $round -le $RepeatCount; $round++) {

    Write-Host "=== ラウンド $round / $RepeatCount ===" -ForegroundColor Cyan

    # 並列ジョブ開始
    $Jobs = foreach ($t in $Targets) {
        Start-Job -ScriptBlock {
            param($ip, $port)

            $result = Test-NetConnection -ComputerName $ip -Port $port -WarningAction SilentlyContinue -InformationLevel Quiet

            if ($result) {
                return "SUCCESS: $ip : $port"
            } else {
                return "FAILED : $ip : $port"
            }
        } -ArgumentList $t.IP, $t.Port
    }

    # ジョブ完了待ち
    Wait-Job $Jobs | Out-Null

    # 結果表示
    foreach ($job in $Jobs) {
        $output = Receive-Job $job

        if ($output -like "SUCCESS*") {
            Write-Host $output -ForegroundColor Green
        } else {
            Write-Host $output -ForegroundColor Red
        }
    }

    # ジョブ削除
    Remove-Job $Jobs -Force

    Write-Host ""
}

Write-Host "=== 全ラウンド完了 ==="
Read-Host "Enter キーを押すと終了します"