VG
Size: a a a
VG
VG
14:12<dadv> Как в perl проверить быстро (мне надо в цикле очень много значений обработать), является ли строка корректным IP-адресом (IPv4 или IPv6)?
14:13<dadv> Я почитал man Socket и попробовал использовать inet_aton(), то есть проверить, получится ли сконвертировать строку в бинарный формат и если нет, типа оно не IP-адрес, но оказалось, что оно делает DNS-запросы зачем-то
14:15<metallkaput> так вроде pton про числовое представление а в aton как раз ещё домен сунуть можно
14:17<dadv> в pton надо совать address family, а я его не знаю заранее
14:18<metallkaput> суй INET6, ipv4 является валидным ipv6 :)
14:18<dadv> правда что ли
14:19<cebka56786> дадаад
14:23<Villi> metallkaput ну разве что с небольшим префиксом )
14:25<dadv> pton действительно работает, но вызов его дважды для one-liner это коряво
14:25<dadv> perl -MSocket=inet_pton,AF_INET,AF_INET6 -ae
14:25<dadv> буэээ
14:25<dadv> 'print $F[0], "\n" unless (inet_pton(AF_INET, $F[0]) || inet_pton(AF_INET6, $F[0]))'
14:25<lavros> если задачка на один раз, то ok.
14:26<lavros> смысл полировать скрипт, которым один раз воспользуешься.
14:26<lavros> (если ты, конечно, не перфекционист :D)
14:32<Ivan_83wr> вот нет чтобы на сях написать вызов этой же функции из либц :)
14:33<dadv> Ivan_83wr: модуль Socket это и делает
14:53<dadv> есть красивее путь:
14:53<dadv> perl -MSocket=:addrinfo -ae 'print $F[0], "\n" if (getaddrinfo $F[0],undef,{flags=>AI_NUMERICHOST})[0];'
О
VG
VG
IA
IA
VG
AK
AK
О
О
VT
VG
VT
VG