Dieses Skript veranschaulicht, wie die netstat
Ausgabe-IPs in Variablen in PowerShell gespeichert werden
Führen Sie einfach das Skript in PowerShell ISE aus, öffnen Sie einen neuen Browser, besuchen Sie www.google.com und sehen Sie, was passiert.
$allIPs = [System.Net.Dns]::GetHostAddresses("www.google.com") $myIP = $allIPs[0].IPAddressToString while ($true) { cls netstat -n | select-string "$myIP.*ESTABLISHED" | foreach { $part = $_.line.split(' ',[System.StringSplitOptions]::RemoveEmptyEntries) $localIP = $part[1] -replace ":.*", "" $remoteIP = $part[2] -replace ":.*", "" write-host $localIP $remoteIP } sleep 2 }
Nach dem Start werden alle Verbindungen netstat -n
alle 2 Sekunden ( while ($true)
zusammen mit sleep 2
) abgefragt.
Zur Beschleunigung von netstat ist -n
(numerisch) der wichtigste Parameter, da keine DNS-Suchvorgänge durchgeführt werden. Weitere Informationen zu anderen Parametern finden Sie wie -a
und -o
bei Technet
Als Nächstes filtert PowerShell nur bestehende Verbindungen ( select-string "$myIP.*ESTABLISHED"
) zu z. B. www.google.com. Dies ist nur ein Beispiel, um zu zeigen, wie es funktioniert. Veränderung
$myIP = $allIPs[0].IPAddressToString
auf die IP, auf die Sie auf einen Ping warten
$myIP = '192.168.1.1'
Der letzte Teil besteht darin, die Zeilen durch Leerzeichen ( $_.line.split(' '
) aufzuteilen, diese Leerzeichen anschließend zu [System.StringSplitOptions]::RemoveEmptyEntries
entfernen ( ), den Port ( -replace ":.*", ""
) zu entfernen und die Ergebnisse in den entsprechenden Variablen zu speichern.
Sie können mit ihnen machen, was immer Sie wollen. Ich wiederholte sie nur mitwrite-host $localIP $remoteIP