![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
теперь пытаюсь исключать AU, но, как-то не очень получается. нуждаюсь в Вашей помощи
|
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
Ап ))))))))))))
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый dixoNICH, можно попробовать воспользоваться геобазой проекта http://www.wipmania.com. Можно использовать их API, а можно сделать локальный поиск (берите данные в SQL-формате, загружайте в базу, далее преобразуете свой IP в int и ищете по базе страну).
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
Спасибо. Решил свою проблему с помощью http://www.iana.org/assignments/ipv4-addre...dress-space.xml
|
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
Появилась небольшая проблема
while (<$socket>){ $f .= $_; /^country:\s*(\w+)$/i; $country = $countrytable{$1}; } Когда передаю в качестве аргумента 200.200.200.200 в country ничего не ловится, если вводить 100.100.100.100 то всё ок. Выводил просто всё, что мне отсылает сервер, там есть строчка country: BR, но почему не парсится? Запуск программы : -all выдаст всё, что пришло с сервера, -c страну, -prog страну, статус, дату и обозначение. Прошу помощи. Всё в архиве
Присоединённый файл ( Кол-во скачиваний: 1 )
ip2crar.rar 5,57 Kb |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
dixoNICH, а закрытием STDOUT Вы отключаете отладочный вывод, я правильно понял? Очень оригинально!
Добавлено @ 15:58 По поводу проблемы с регулярным выражением почитайте в perldoc perlre про модификатор m Это сообщение отредактировал(а) ginnie - 28.9.2011, 15:59 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
нет, почему? ) у меня в функции выводится 4 поля, функция возвращает массив. в этом массиве 0-ой и 1-ый элемент — два поля из этих четырёх.
если я делаю так : @arr = prog(); то вызовется функция и выдаст на экран мне эти четыре поля, что мне не надо, по-этому я закрываю стдин. а чем мне поможет m? если у меня во всех тестируемых случаях работает регвыр, кроме вот 200.200.200.200(или 201 последний октет или 202 etc) |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Да, по поводу m я был не прав!
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
# whois 200.200.200.200 | perl -lne 'm#^country:\s*(\w+)#im && print $1'
BR # |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
В ответах whois-серверов строки оканчиваются по-разному, некоторые на \n, а некоторые на \r\n.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
заработало, когда убрал в конце $
спасибо, arto. Добавлено через 10 минут и 49 секунд ещё один трабл : отправляю на сервер ещё одно сообщение когда отправляю 2-ой раз и пытаюсь получить всё, то ничего не приходит. и просто $_ во втором вайле не выводится(
|
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
всё понял, забыл закрыть и открыть сокет)
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
dixoNICH, а не лучше ли писать так:
Кстати m в регулярках не нужно, т.к. в $_ всегда одна строка (чтение построчное). -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| dixoNICH |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 222 Регистрация: 20.3.2011 Репутация: нет Всего: нет |
Может быть лучше
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |