Задать вопрос
@lugange
System Administrator

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

Есть у меня файл hosts.txt, в нём список ip-адресов сети. Мне нужно пингануть каждый из этих айпишников и на выводе получить что-то типа "192.168.Х.Х => ttl=64". Как это можно реализовать?
  • Вопрос задан
  • 495 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Linux для робототехников
    3 месяца
    Далее
  • Stepik
    Основы Linux
    2 недели
    Далее
  • Учебный центр IBS
    AL-1801 ОС Astra Linux Special Edition 1.8 для пользователей
    1 неделя
    Далее
Решения вопроса 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)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы