@lugange
System Administrator

Как пропинговать айпишники и на выводе получить только сам ip и ttl?

Есть у меня файл hosts.txt, в нём список ip-адресов сети. Мне нужно пингануть каждый из этих айпишников и на выводе получить что-то типа "192.168.Х.Х => ttl=64". Как это можно реализовать?
  • Вопрос задан
  • 325 просмотров
Решения вопроса 1
fara_ib
@fara_ib
#!/bin/bash
FILE=$1
while read LINE; do
ttlstr=$(ping -c1 -w1 $LINE | grep -o 'ttl=[0-9][0-9]*') || {
printf "%s is Offline\n" "$LINE"
continue;
}
ttl="${ttlstr#*=}"
printf "%s is Online, ttl=%d\n" "$LINE" "$ttl"
done < $FILE

file addr.txt
192.168.2.1
8.8.8.8
10.9.9.9
4.4.4.4
9.9.9.9
1.1.1.1

Запуск и вывод результатов
root@ubnt:~# ./pingffile.sh addr.txt
192.168.2.1 is Offline
8.8.8.8 is Online, ttl=110
10.9.9.9 is Offline
4.4.4.4 is Offline
9.9.9.9 is Online, ttl=59
1.1.1.1 is Online, ttl=58
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@linux81
Как один из вариантов
for line in `cat host.txt` ; do ping -c 1 $line |awk '{print $4 $6}'| head -n2|tail -n 1; done
Ответ написан
Комментировать
sashkets
@sashkets
Прекратил отвечать после 24.02.2022
fping -e -f host
8.8.8.8 is alive (45.9 ms)
4.2.2.4 is alive (62.0 ms)

8.8.8.8 is alive (45.9 ms)
4.2.2.4 is alive (62.0 ms)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы