LINUX.ORG.RU

Такое вообще возможно?


0

0

Задача - написать BASH скрипт, который пропинговал бы всю подсеть. Адрес сети должен передаваться скрипту параметром. Пример:
./ping-all 10.0.4.1
Собственно препод дал такое задание ( не удивлюсь если оно невыполнимо на BASH ). Разбить IP на 4 составные части не составляет труда:
#!/bin/bash
echo $1 | awk -F. '{print $1,$2,$3,$4}'
Да только вот незадача: как назначить выводу awk параметры типа $4,$5,$6,$7. Поможете? Или быть может я мыслю не в том направлении? Подскажите что делать. Спасибо.

anonymous
Ответ на: комментарий от wfrr

Такое препод воспримет как личное оскорбление. Нужно именно пропинговать. И чтобы в скрипт шел именно 1 а не 4 параметра :(

anonymous
()

> ./ping-all 10.0.4.1

Это адреса сети теперь так пишут?

Возни будет меньше, если не требуется использование бесклассовой адресации, а так -- задача вполне себе решабельна.

xio
()
Ответ на: комментарий от wfrr

> ping -b 172.16.255.255

Ну или вообще так, не мудрствуя лукаво +)

xio
()

>не удивлюсь если оно невыполнимо на BASH

Разумеется, оно не выполнимо, препод над вами издевается :)

Я не совсем понял ваше задание, а именно: "Адрес сети должен передаваться скрипту параметром. Пример: ./ping-all 10.0.4.1", но 10.0.4.1 --- это адрес хоста, а не сети. Если у вас классовые сети, то это сеть класса A, 10.0.0.0, если бесклассовые, то какой префикс (маска) сети?

Ну, а так, можно что-то типа:

#!/bin/bash
A=`echo $1 | awk -F. '{print $1}'`
B=`echo $1 | awk -F. '{print $2}'`
C=`echo $1 | awk -F. '{print $3}'`
# а потом
ping $A.$B.$C.2

mky ★★★★★
()
Ответ на: комментарий от anonymous

Оно?

#!/bin/sh
C=$1
F=`echo $C | awk -F. '{print $1"."$2"."$3"."}'`
for ((i = 1; i <= 254; i++))
do
        ping -c 1 $F$i 
done

SANTA_CLAUS ★★
()
Ответ на: комментарий от SANTA_CLAUS

Сложности нет никакой, а маски ещё бывают и дырявыми.

Lumi ★★★★★
()
Ответ на: комментарий от gnomino

Да чего вы придрались? :) Я его не как полное готовое решение выложил, а просто примерчик =) Да и в вопросе не было конкретики (вообще вопрос был непонятен, сам довыдумал). Да и не думаю что в наших учебных заведениях знают что маски подсети бывают отличными от 24. ИМХО

SANTA_CLAUS ★★
()
Ответ на: комментарий от SANTA_CLAUS

Просто к написанию чего-то стараюсь подходить основательно, обдумывая варианты и закладывая иммунитет к возможможным изменениям условий задачи, конечно на скорость разработки это влияет, но я делаю фо фан. Препод, если не дурак, полюбому подковырнет масками подсетей.

gnomino
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.