Neulich stand ich vor dem Problem, dass der Internet Provider ein paar Ports blockte und ich herausfinden musste, welche es genau sind. Hierfür bietet sich der Powershell Befehl Test-NetConnection an, bei dem man eine IP und einen Port angeben kann. Weiters benötigt man eine Webseite, bei der die Ports offen sind – Hierbei kann man open.zorinaq.com verwenden.
Mit folgenden Skript werden alle Ports von 1 bis 65.535 geprüft und die, bei denen keine Connection hergestellt werden konnte ausgegeben.
$machine = 'open.zorinaq.com' for ($i=1; $i -lt 65536; $i++) { $port = $i $ret = (Test-NetConnection $machine -port $port).TcpTestSucceeded if ($ret -eq $false) { Write-Host $port ":" $ret } }
Will man nicht soviele Ports prüfen, sondern nur eine eingeschränkte Reihe von Ports.
$machine = 'open.zorinaq.com' $port_arr = @(8331, 8332, 8333, 8334, 8335, 8310, 8311) foreach ($port in $port_arr) { $ret = (Test-NetConnection $machine -port $port).TcpTestSucceeded if ($ret -eq $false) { Write-Host $port ":" $ret } }