Bash (Обработка вывода утилиты ping)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Bash

Сообщение Corsair »

Есть произвольный компьютер в произвольной сети.
Задача заключается в том, чтобы этот компьютер сам взял себе IP-адрес, предварительно проверив не занят ли он.
Я планировал пинговать по очереди адреса и, сообверственно, брать адрес, который не пингуется. Но как проанализировать вывод утилиты ping не пойму. Буду признателен за советы
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: Bash

Сообщение BlackStar »

DHCP чем не устраивает?
LightLang Team
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Bash

Сообщение serzh-z »

BlackStar писал(а):
18.03.2008 15:48
DHCP чем не устраивает?
Либо IPv4LL, если нет желания использовать DHCP.
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Bash

Сообщение Corsair »

Я идиот=)
На php я сделал так.

Код: Выделить всё

<?
    $host = 'ya.ru';
    $count = 3;
    exec("ping -c $count $host", $out);
    print_r ($out);
?>


И пытался найти метод аналогичный, но на баше. И когда сейчас пытался описать что я хочу, меня посетило гениальное решение

Код: Выделить всё

ping -c 3 ya.ru > ping.log

А потом этот лог парсить.
Прям как-то стыдно стало=)
Жестокий стоячий админ (с) коллега
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: Bash

Сообщение Black »

Может я что-то не понял, но зачем парсить? Если пинг прошёл успешно, будет код завершения 0, иначе >0.

Код: Выделить всё

for host in список; do
if ping -c3 $host; then echo "$host занято"; else ifconfig eth0 $host; fi
done
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
Аватара пользователя
Corsair
Сообщения: 842
Статус: Местный "тролль"
ОС: Fedora

Re: Bash

Сообщение Corsair »

Black, благодарствую, это как раз то, что нужно. Экспа=)
Жестокий стоячий админ (с) коллега
Спасибо сказали: