Forum Webscript.Ru
Программирование => Perl => Тема начата: Duke от 24 Марта 2003, 08:40:40
-
Сразу оговорюсь, что регулярные выражения для меня чужды. Я тольк взялся с ними разбираться.
Задача такая.
Один скрипт пингует ийпишники сети, а информацию о "ответивших" записывает в текстовый файл. Вот несколько строк этого файла.
Host 217-106-130-10.siberianet.ru (217.106.130.10) appears to be up.
Host 217-106-130-12.siberianet.ru (217.106.130.12) appears to be up.
Host 217-106-130-13.siberianet.ru (217.106.130.13) appears to be up.
Host 217-106-130-15.siberianet.ru (217.106.130.15) appears to be up.
Другой маленький скриптик бонально читает эти строки из файла и выводит в окно браузера.
Подскажите регулярное выражение которое бы "выбирало" из каждой строки только IP?
Т.е. после его работы в браузере должен быть просто перечень IP-шников:
217.106.130.10
217.106.130.12
217.106.130.13
217.106.130.15
-
Поиск по форуму рулит.
-
Читаешь файл в @dat и
for(@dat){ if(/\\(([\\d\\.]+)\\)/){print $1}}
Должно напечатать только ip
[off]Если не ошибаюсь :) [/off]
-
Спасибо, я разобрался. Всё оказалось оч просто :)
foreach (@ar_allmail) {
#Host 217-106-130-206.siberianet.ru (217.106.130.206) appears to be up.
($host, $domen, $ip, $a, $b, $c, $d) = split;
if ($host eq \'#\') {next;}
($ip2)=$ip=~/\\((\\d+\\.\\d+\\.\\d+\\.\\d+)\\)/;
print "$ip2
";
}