PowerShell
Port Scanning
# Define o endereço IP alvo
$enderecoIP = "192.168.1.158"
# Define o intervalo de portas para o scan (ajuste conforme necessário para um teste mais rápido)
$portas = 1..1024
# Especifica o caminho do arquivo de saída
$arquivoSaida = "portscan.txt"
# Prepara o arquivo de saída
"Portas abertas no ${enderecoIP}:" | Out-File $arquivoSaida
# Inicializa a variável de progresso
$progresso = 0
$totalPortas = $portas.Count
foreach ($porta in $portas) {
    # Atualiza e exibe a barra de progresso
    $percentComplete = [math]::Round(($progresso / $totalPortas) * 100, 2)
    Write-Progress -PercentComplete $percentComplete -Status "Scanning: $enderecoIP" -Activity "Port Scan Progress" -CurrentOperation "Porta ${porta}"
    $connection = $null
    try {
        # Tenta conectar com um timeout de 1000ms (1 segundo)
        $connection = New-Object System.Net.Sockets.TcpClient($enderecoIP, $porta)
        $connection.ReceiveTimeout = 1000
        $connection.SendTimeout = 1000
        if ($connection.Connected) {
            "Porta ${porta}: Aberta" | Out-File -FilePath $arquivoSaida -Append
        }
    } catch {
        # Não faz nada se a porta estiver fechada
    } finally {
        if ($connection -ne $null) {
            $connection.Close()
        }
    }
    $progresso++
}
Write-Progress -PercentComplete 100 -Status "Scan Completo" -Completed
"Scan completo." | Out-File -FilePath $arquivoSaida -AppendAtualizado
Isto foi útil?