Раздел: Разработка
|
|
|
|
Socks-сервер - для его создания нам понадобятся две библиотеки из cpan: IO::Select и IO::Socket::Socks . Первая для обмена информацией между соединяемым хостом, вторая, собственно, для создания socks-сервера и socks-клиента. Для создания Socks-клиента достаточно прочитать документацию на cpan и посмотреть пример - там все более-менее расписано, а вот описание socks-сервера обделено вниманием. К счастью, в каталоге автора IO::Socket::Socks есть пример создания ( subs.pm ), его то мы и возьмем за основу, слегка допилив напильником и обеспечив многозадачностью (многоклиентовостью, если хотите :) )
Возникла необходимость грабить и парсить одну страничку, находясь в локальной сети с MS Windows Server Active Directory и через прокси (в моем случе - это MS ISA-Server).
Что такое CPAN?
CPAN (Comprehensive Perl Archive Network) - Всеобщий сетевой архив Перл - это огромная коллекция программного обеспечения на/для Perl, а также документации. Этот архив доступен по адресу http://www.cpan.org . Также CPAN - это один из модулей для Perl (CPAN.pm), который позволяет значительно упростить установку модулей, опубликованных в этом архиве.
CPAN (Comprehensive Perl Archive Network) - Всеобщий сетевой архив Перл - это огромная коллекция программного обеспечения на/для Perl, а также документации. Этот архив доступен по адресу http://www.cpan.org . Также CPAN - это один из модулей для Perl (CPAN.pm), который позволяет значительно упростить установку модулей, опубликованных в этом архиве.
Ну вот, добрался прогресс и до нас. Сегодня пришло тех.задание проапдейтить мой SEO-инструмент, что б можно было использовать домены в зоне .рф. Казалось бы что тут сложного, а не тут-то было, из четырех опробованных готовых библиотек, найденных на CPAN, только одна корректно отработала.
Проблема
Имеется десятичное число, которое необходимо вывести в двоичном представлении, или наоборот, двоичная последовательность, которую требуется преобразовать в десятичное число. Такие задачи часто возникают при отображении нетекстовых данных - например, полученных в процессе взаимодействия с некоторыми системными функциями и программами.
Имеется десятичное число, которое необходимо вывести в двоичном представлении, или наоборот, двоичная последовательность, которую требуется преобразовать в десятичное число. Такие задачи часто возникают при отображении нетекстовых данных - например, полученных в процессе взаимодействия с некоторыми системными функциями и программами.
На стороне web-сервера определить операционную систему пользователя можно, практически, только одним способом: через переданный User-Agent .
Если у вас в коде предполагается делать не единичные http-запросы, то наверняка вы создаете отдельный метод для этого, да бы исключить повторений в коде. Вот два моих решения, основанные на LWP и AnyEvent::HTTP
Я уже писал ранее про " разбивку по страницам ", но этот метод имеет один существенный недостаток: если мы работаем с базой данных огромных размеров, то, во-первых теряется много времени на выборку всех записей, а во-вторых - может не хватить памяти для хранения выбранных результатов перед тем, как мы их отдадим на съедение split_page
Всякий, кто использует в программе анонимные хэши и массивы, не раз сталкивался с необходимостью создания автономного и независимого дубликата переменной. Вариантов решения много, в том числе и с помощью сериализации.
Данный метод, split_page() , предназначен для разбивки данных по страницам в прямом и обратном порядке.