declare -a array=($(tail -n +2 /proc/net/tcp | cut -d":" -f"3"|cut -d" " -f"1")) && for port in ${array[@]}; do echo $((0x$port)); done


Данная команда позволяет узнать открытые порты без использования утилит netstat или lsof. Она использует файл /proc/net/tcp, из которого извлекает информацию о TCP-портах, и преобразует их в десятичное представление.

Пояснение команды:
1. «tail -n +2 /proc/net/tcp» — выводит содержимое файла /proc/net/tcp, исключая первую строку.
2. «cut -d»:» -f»3″» — извлекает третье поле каждой строки, используя «:» в качестве разделителя.
3. «cut -d» » -f»1″» — извлекает первое поле каждой строки, используя пробел в качестве разделителя.
4. «declare -a array=($(…))» — объявляет массив array и заполняет его значениями, полученными из предыдущего шага.
5. «for port in ${array[@]}; do echo $((0x$port)); done» — для каждого значения в массиве array преобразует его из шестнадцатеричного представления в десятичное и выводит результат.

Альтернативные методы включают использование утилит netstat или lsof для получения информации о открытых портах.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *