Есть произвольный компьютер в произвольной сети.
Задача заключается в том, чтобы этот компьютер сам взял себе IP-адрес, предварительно проверив не занят ли он.
Я планировал пинговать по очереди адреса и, сообверственно, брать адрес, который не пингуется. Но как проанализировать вывод утилиты ping не пойму. Буду признателен за советы
Bash (Обработка вывода утилиты ping)
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 842
- Статус: Местный "тролль"
- ОС: Fedora
Bash
Жестокий стоячий админ (с) коллега
-
- Сообщения: 1338
- Статус: We are all Kosh
- ОС: Fedora 10
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
- Сообщения: 842
- Статус: Местный "тролль"
- ОС: Fedora
Re: Bash
Я идиот=)
На php я сделал так.
И пытался найти метод аналогичный, но на баше. И когда сейчас пытался описать что я хочу, меня посетило гениальное решение
А потом этот лог парсить.
Прям как-то стыдно стало=)
На php я сделал так.
Код: Выделить всё
<?
$host = 'ya.ru';
$count = 3;
exec("ping -c $count $host", $out);
print_r ($out);
?>
И пытался найти метод аналогичный, но на баше. И когда сейчас пытался описать что я хочу, меня посетило гениальное решение
Код: Выделить всё
ping -c 3 ya.ru > ping.log
А потом этот лог парсить.
Прям как-то стыдно стало=)
Жестокий стоячий админ (с) коллега
-
- Сообщения: 1104
- ОС: ArchLinux
Re: Bash
Может я что-то не понял, но зачем парсить? Если пинг прошёл успешно, будет код завершения 0, иначе >0.
Код: Выделить всё
for host in список; do
if ping -c3 $host; then echo "$host занято"; else ifconfig eth0 $host; fi
done
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
-
- Сообщения: 842
- Статус: Местный "тролль"
- ОС: Fedora
Re: Bash
Black, благодарствую, это как раз то, что нужно. Экспа=)
Жестокий стоячий админ (с) коллега