@lugange
System Administrator

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

Есть у меня файл hosts.txt, в нём список ip-адресов сети. Мне нужно пингануть каждый из этих айпишников и на выводе получить что-то типа "192.168.Х.Х => ttl=64". Как это можно реализовать?
  • Вопрос задан
  • 255 просмотров
Решения вопроса 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
Даром получили — даром давайте (Матфея 10:8)
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)
Ответ написан
Ваш ответ на вопрос

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

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