Forum Webscript.Ru
Программирование => Perl => Тема начата: sickboy от 16 Декабря 2005, 22:30:35
-
Hi,
Есть такая переменная:
$host=`/usr/bin/host -t mx $hostname`;
вот ее содержимое, к примеру:
yandex.ru mail is handled by 10 mx2.yandex.ru.
yandex.ru mail is handled by 0 mx1.yandex.ru.
Из этих строк нужно последовательно извлеч
mx2.yandex.ru.
затем
mx1.yandex.ru.
я это делаю так:
@host= split (/\\s+/, $host);
print "@host[6]\\n";
но так я получу только последнюю строку, а как получить все?
Извиняюсь за ламерский вопрос, только начал изучать perl.
Спасибо.
-
Сначала разбейте вывод на строки, потом для каждой строки ищите host.
Например:
; push @hosts, /\\s+([\\w\\.]+)$/ for split("\\n", $host)
; print "hosts: ", join(", ", @hosts)
-
Спасибо.
-
появился еще один вопрос:
для некоторых хостов нет MX записи, и при запросе:
host -t mx 555.ru
ничего не возвращается.
как можно отследить эту пустую строку?
-
# host -t mx 555.ru
555.ru has no MX record
#
-
arto
какой продвинутый у вас host
Всем спасибо, я уже решил свою задачу.