вы можете использовать вывод fping в качестве целевого списка nmap:
fping -aqg ip/24 | xargs nmap -sn --traceroute
Если ваша проблема в том, что какой-то шлюз в вашей сети выдает поддельные ARP-ответы (генерируя ложные срабатывания), вы можете использовать -sn -PE
, чтобы исправить это:
nmap -sn -PE --traceroute ip/24
Таким образом, Nmap будет исключительно отображать хост (и выполнять трассировку), если хост отвечает на запрос ICMP (ping).
Предполагая, что вы хотите перечислить файловые дескрипторы, подключенные к любому терминалу, вы можете использовать lsof
/ fuser
] или подобное, например:
$ lsof -p $$ 2>/dev/null | awk '$NF ~ /\/pts\//'
bash 32406 foobar 0u CHR 136,31 0t0 34 /dev/pts/31
bash 32406 foobar 1u CHR 136,31 0t0 34 /dev/pts/31
bash 32406 foobar 2u CHR 136,31 0t0 34 /dev/pts/31
bash 32406 foobar 3u CHR 136,31 0t0 34 /dev/pts/31
bash 32406 foobar 255u CHR 136,31 0t0 34 /dev/pts/31
Эти инструменты в основном анализируют / proc
, поэтому вы можете просто получить доступ к / proc / $$ / fd /
, например:
ls /proc/$$/fd/*
Да, здесь будут перечислены все дескрипторы открытых файлов:
$ ls -la /proc/$$/fd
total 0
dr-x------ 2 sorontar sorontar 0 Dec 28 00:56 .
dr-xr-xr-x 9 sorontar sorontar 0 Dec 28 00:56 ..
lrwx------ 1 sorontar sorontar 64 Dec 28 00:56 0 -> /dev/pts/6
lrwx------ 1 sorontar sorontar 64 Dec 28 00:56 1 -> /dev/pts/6
lrwx------ 1 sorontar sorontar 64 Dec 28 00:56 2 -> /dev/pts/6
lrwx------ 1 sorontar sorontar 64 Dec 28 00:56 255 -> /dev/pts/6
l-wx------ 1 sorontar sorontar 64 Dec 28 00:56 4 -> /home/sorontar/testfile.txt
Конечно, как обычно: 0 - стандартный ввод, 1 - стандартный вывод и 2 - стандартный поток.
В данном случае 4-й файл - это открытый файл (для записи).
Используйте утилитуlsof
для вывода всех файловых дескрипторов для текущего процесса оболочки (процесса, указанного-p $$
)и (-a
), где файловый дескриптор является числовым(-d 0-256
):
$ lsof -p $$ -a -d 0-256
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 16883 ant 0u CHR 136,15 0t0 18 /dev/pts/15
bash 16883 ant 1u CHR 136,15 0t0 18 /dev/pts/15
bash 16883 ant 2u CHR 136,15 0t0 18 /dev/pts/15
bash 16883 ant 255u CHR 136,15 0t0 18 /dev/pts/15
Передайте в Awk, чтобы напечатать только дескриптор файла и соответствующее ему имя файла:
$ lsof -p $$ -a -d 0-256 | awk '{ printf("%4s:\t%s\n", $4, $NF) }'
FD: NAME
0u: /dev/pts/15
1u: /dev/pts/15
2u: /dev/pts/15
255u: /dev/pts/15
Примечание :когда lsof
печатает файловые дескрипторы, он добавляет следующий код для указания режима доступа к файлу:
r
– доступ на чтение w
– доступ для записи u
— доступ для чтения и записи