Вступ: Я створив функцію bash, яка здатна перевірити, чи є порт доступним, і збільшить його на 1, якщо false, до певного максимального номера порту. Наприклад, якщо порт 500 недоступний, то доступність 501 буде перевірена до 550.
Мета: Щоб перевірити цю функцію bash, мені потрібно створити діапазон портів, які знаходяться в стані LISTEN.
Спроби: У Windows можна створити порт LISTEN за допомогою цих команд 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>
Виходячи з цього, я намагався думати про команду, яка могла би зробити те саме на CentOS, але я не знаю, чому, і я почав працювати в Google, не знайшовши рішення, яке вирішує цю проблему.
Очікувана відповідь : я прийму та підтверджую відповідь, що містить команду, яка здатна створити порт LISTEN і після виконання команди порт повинен залишатися у стані LISTEN, тобто:
[user@host ~]$ ss -nat | grep 500
LISTEN 0 128 *:500 *:*
netstat -an --tcp | awk '/LISTEN/ {sub(".*:", "", $4); print $4}' | sort -nu
. На * BSD:netstat -an -f inet -p tcp | awk '/LISTEN/ {sub(".*\\.", "", $4); print $4}' | sort -nu
.