Wprowadzenie: Utworzyłem funkcję bash, która jest w stanie sprawdzić, czy port jest dostępny, i zwiększa go o 1, jeśli ma wartość false, aż do określonego maksymalnego numeru portu. Np. Jeśli port 500 jest niedostępny, dostępność 501 będzie sprawdzana do 550.
Cel: Aby przetestować tę funkcję bash, muszę utworzyć szereg portów, które są w stanie LISTEN.
Próby: W systemie Windows można utworzyć port LISTEN przy użyciu następujących poleceń programu PowerShell :
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234
PS C:\Users\u> $listener.Start();
PS C:\Users\u> netstat -nat | grep 1234
TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING InHost
PS C:\Users\u> $listener.Stop();
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u>
Na tej podstawie próbowałem wymyślić polecenie, które mogłoby zrobić to samo na CentOS, ale nie wiem dlaczego i zacząłem Google, nie znajdując rozwiązania, które rozwiązałoby ten problem.
Oczekiwana odpowiedź : Akceptuję i głosuję odpowiedź zawierającą polecenie, które jest w stanie utworzyć port LISTEN, a po uruchomieniu polecenia port powinien pozostać w stanie LISTEN, tj .:
[user@host ~]$ ss -nat | grep 500
LISTEN 0 128 *:500 *:*
netstat -an --tcp | awk '/LISTEN/ {sub(".*:", "", $4); print $4}' | sort -nu
. Na * BSD:netstat -an -f inet -p tcp | awk '/LISTEN/ {sub(".*\\.", "", $4); print $4}' | sort -nu
.