LINUX.ORG.RU

BASH и nslookup

 , ,


1

1

Доброго дня. Пишу для лабораторной работы скрипт пинга всех адресов, полученных из nslookup, но возникла проблема фильтрации и ввода полученных адресов обратно в скрипт. Текущий скрипт черз костыль лога выводит листинг полученных адресов, но как вернуть их обратно - самый сложный вопрос. Подскажите, пожалуйста, куда можно копнуть по этой теме? Заранее спасибо.

#!/bin/bash
host=$host
# ENTER IP OR HOST
        echo "PLEASE ENTER HOST OR IP:"
read host
{
        nslookup $host
} > log.txt
#echo "dnsS" | tail log.txt | grep Address
awk -F " " '{ print $2 }' log.txt | grep [0-9]
ping -c 4 $Address
exit

Если я правильно понял, тебе нужно получить адрес в переменную?

read host
Addr=$(nslookup $host | grep Addres | grep -v "#" | awk '{print $2}')
echo $Addr
sigurd ★★★★★ ()
Ответ на: комментарий от sigurd

Разобрался, го…

#!/bin/bash host=$host
ENTER IP OR HOST#

    echo "PLEASE ENTER HOST OR IP:"

read host { nslookup $host } > raw.txt

{ awk -F " " ‘{ print $2 }’ raw.txt | grep -E -o "(25[0-5]|2[0-4][0-9]|[0$ } > ip.txt cat ip.txt | while read ip; do ping -c 10 $ip; done cat ip.txt | while read ip; do traceroute $ip; done

sleep 3

rm raw.txt rm ip.txt

exit

Вроде разобрался, но с костылями в виде вывода в текстовики, но хотелось бы обойтись без них, посколько может встретиться read-only среда запуска скрипта

R0M ()
Ответ на: комментарий от sigurd

Извини

Блин, точно! Спасибо! С ночной смены читаю меж строк

R0M ()

Альтернативный вариант:

#!/bin/bash

read -p 'PLEASE ENTER HOST OR IP: ' host
dig +short "$host". a | xargs --no-run-if-empty fping -a | ...

dig возвращает список IP адресов домена. Если изначально был введён IP адрес, просто вернёт его.

fping из списка всех вернёт список «живых» (пингующихся).

spirit ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.