Архивы: по дате | по разделам | по авторам

Ночная охота в Интернете

Архив
автор : Дмитрий Соколов   20.04.1998

Как вы думаете, на что можно охотиться в Интернете? Правильно, на файлы. Потрясающие размеры новых программ и игр превращают их в мои мишени на охоте. Почему бы не скачать их просто щелчком мышки на надписи "Download now!"? Потому что этот процесс из увлекательной прогулки по лесу превратится в унылую ходьбу по болотам. Скорость скачивания днем через обычный браузер не превышает 100-200 бит/с. И вот проходит час, и когда процент загрузки достигает 90, соединение "падает". Если после восстановления связи вы щелкаете мышкой на той же ссылке, вас ехидно переспросят: "Заменить… файл?" И загрузка начнется сначала. А между тем, ваши деньги текут в телефонную трубу и в карман провайдера.

Я слышал, что имеются программы, позволяющие докачивать файлы. Полагая, что они основаны не на древней магии, а на вполне реальных вещах, я задался целью разобраться в них. Как оказалось, программ такого рода написано немало, в том числе и в России. Это определенный класс, который бурно развивается, наращивая возможности и постепенно переходя от любительского статуса к профессиональному. Какие функции выполняют эти программы?

  • Гарантированную доставку файлов любого размера.
  • "Захват" целых узлов сети для последующего просмотра off-line.
  • Автоматическое слежение за изменениями страниц и файлов.

    Будут ли включены эти функции в стандартный браузер? Возможно, хотя этого нельзя знать наверняка. А скачивать файлы мне нужно уже сегодня!

    В охотоведческих терминах я назвал бы эти программы "гончими псами". По моему опыту, при цене не выше 20 долларов "хорошая собака" оправдает себя за месяц, экономя время в режиме on-line.

    Как это происходит на практике?

    В дневное время я ищу свои "жертвы" с помощью обычного браузера. Найдя нужную ссылку, я даю моему "псу" возможность "взять след". Для этого существует несколько способов.

    • Самый приятный. "Взять" ссылку левой кнопкой мышки и перенести ее на "морду" собаки. Лучшие программы умеют оставлять вместо себя лишь небольшой квадратик, который находится поверх всех окон и свободно перемещается по экрану. Когда ссылка "брошена" на этот квадрат, автоматически создается задание, которое начнет выполняться сразу или в указанное время.
    • Если ссылка представляет собой рисунок, метод перетаскивания не подходит. Придется нажать правую кнопку мыши и скопировать ссылку в буфер обмена. Умный "пес" следит за буфером, и как только там появляется ссылка, перехватывает ее. Конечно, иногда бывает, что ссылки попадают случайно и все идет не так, как надо. Тогда можно вызвать программу и вручную вставить ссылку из буфера обмена.
    • Самые умные "псы" умеют перехватывать ссылки при простом нажатии левой кнопки мыши. Вы задаете расширения файлов, которые всегда будете скачивать (ZIP, EXE, ARJ, RAR), и процесс полностью автоматизируется. Когда случаются исключения, нужно подать об этом знак "собачке", и она вас поймет. Например, если эту ссылку вы хотите получить через браузер, щелкните мышкой, удерживая Shift. И наоборот, если вы не хотите, чтобы файл качался обычным способом (большая HTML-страница), держите CTRL и ALT во время щелчка.

      Известно, что файл может храниться в Сети на многих машинах. Разница в скорости доступа различается, и значительно. "Пес" и в этом случае не подводит. Он может поискать файл в Сети (через ftpsearch), а потом оценит каждый найденный сайт (время, количество узлов на пути, качество связи), заодно проверив его на возможность докачки. Выбрав оптимальный вариант, "пес" цепляется в файл зубами, и будьте уверены, его уже не выпустит (даже если соединение будет разорвано, или сигнал на линии пропадет, или компьютер перегрузится).

    Однако я не даю ему начать охоту немедленно. Это будет ночью! То, что ночью файл должен загружаться быстрее, кажется достаточно очевидным. Однако, проанализировав статистику нагрузки провайдера, я понял, что с полуночи до двух ночи работа кипит не меньше чем днем. Это связано как с популярной тактикой снижения тарифов в ночные часы, так и с собственными делами провайдера. Самое лучшее время оказалось с 6 до 8 утра. О, замечательное время, когда так хочется спать. Самые стойкие часовые засыпают, но… мой "пес" не проспит. Я указываю ему, как соединиться с провайдером, затем время. После окончания связи "пес" закроет соединение (по желанию, выключит и компьютер).

    В процессе ловли "дичи" "пес" очень осторожен. Он старается "поймать" файл так, чтобы мне он обошелся как можно дешевле.

    • Перед загрузкой файла вновь будет найден самый быстрый сервер.
    • Если сервер не отвечает в течение указанного времени, соединение разрывается.
    • Если данные не принимаются, программа повторит попытку через заданный интервал.
    • Если скорость приема файла ниже указанной, сервер может быть заменен.
    • Если общее время загрузки превышает разумный лимит, соединение разрывается.

    Именно так мой "песик" принял файл размером 4,8 Мбайт за 24 минуты. И это не с местного сервера!

    Очень удобно и то, что время загрузки можно назначить одинаковым для всех файлов, например, 6.30 AM. Пес поставит их в очередь в соответствии с уровнем приоритета и будет загружать постепенно (рекомендуется по два за раз).

    Прогулявшись по "собачьим питомникам", я повидал многих и могу вам сказать, что выбрать сложно. "Собак" много, и новые породы появляются почти каждый день. Самыми умными и обученными я бы назвал две: GetRight (версия 3.1) и Go!zilla (версия 3.0).

    Пакет GetRight (http://www.headlightsw.com) является функционально наиболее полным и надежным, оправдывая свое название "Загружать правильно". В течение 30 дней вы можете испытывать его на прочность, а потом нужно заплатить всего 17,5 долларов, и он будет ваш. В shareware-версии, кроме предупреждений о статусе, есть ограничение на скачивание связанных страниц (Web processor). Так что лучше зарегистрироваться как можно скорее.

    Что понравилось больше всего?

  • Самый удобный способ задания времени. Вместо стандартного календаря, как в других программах, предполагается, что вы будете качать сегодня ночью (по умолчанию в 1.00 AM). Таким образом, легко задать время в пределах 24 часов. Если нужно отложить процедуру на время больше суток, выберите один из семи дней недели.
  • Прекрасно организован доступ через proxy. Нажатие кнопки FIND автоматически перенесет настройки proxy из вашего браузера.

    Для HTTP proxy есть три очень полезных установки:

    • использовать соединение без proxy, если он не отвечает;
    • использовать HTTP proxy для адресов FTP, если есть проблемы;
    • не использовать кэш proxy (чтобы можно было скачать оборванный файл).

    Для FTP proxy имеется опция "использование пассивного режима PASV сервера".

    • Если вы загружаете несколько файлов с одного FTP-сервера, программа может повторно использовать соединение (Re-Use FTP connection), что позволяет сэкономить время.
    • Некоторые провайдеры или proxy-серверы разрывают соединение, если оно не активно. Может случиться, что программа просто долго ждет ответа от сервера. Тогда включите опцию, "оживляющую" связь. Программа будет посылать команду Ping время от времени, сохраняя активность.
    • В случае возникновения сбоя сообщение об ошибке записывается прямо в выходной поток и искажает соединение. Включив установку отката (Rollback) на заданное число килобайт, можно избежать этой проблемы.
    • Для связи по коммутируемому каналу можно использовать не только стандартный RAS, но и любую другую внешнюю программу.
    • Для доступа к определенным серверам требуется указывать настоящие имена пользователей и паролей. GetRight позволяет хранить такой список и автоматически его использовать.
    • Программа может использовать Cookies браузера, если сервер требует этого.
    • Отличный отчет о проделанной работе. Log файл может быть общим или созданным для каждого файла.
    • Каждое действие программы вы можете сопроводить определенным звуком.
    • GetRight можно запускать с параметрами и использовать в bat файлах!
    • Для импорта файла заданий можно использовать простой текстовый файл. Таким путем можно составлять задания, даже если вы работаете на другой машине, где GetRight не установлен.

    GetRight - это правильный выбор! Единственный его недостаток: за него нужно платить деньги. А если серьезно, почему-то очень медленно обновляется расписание. В чем проблема - непонятно. Вообще-то расписание хранится в реестре Windows. И еще, не забывайте устанавливать таймер для разрыва соединения. Если сервер по каким-то причинам не дает login, ваш "пес" будет стучаться очень долго. Я обычно начинаю подкачку для проверки соединения, и как только пойдут первые килобайты, останавливаю ее.

    А еще, эта "собака" кажется мне слишком серьезной, не то что следующая.

    Go!zilla (http://www.gizmo.net/gozilla). Произнеся это слово, я уловил две ассоциации, одну с японским чудовищем (не люблю такие фильмы), другое со словом Mozilla (это уже интереснее). Загрузив его и посмотрев на огромный глаз, налитый кровью, и послушав грозный рык, который он издает, поневоле проникаешься уважением к этому динозавру. Тем не менее, это самый преданный хозяину "пес", какого я знаю.

    При первой встрече (этап инсталляции) он пытается с вами познакомиться, задавая всякие нескромные вопросы (женаты вы или нет). Сразу покажите, что вы здесь хозяин, не отвечая ни на один из них.

    Когда появится диалог Connection, введите параметры соединения. Параметр Max connect определяет максимальное число соединений, которое программа будет обрабатывать за раз. То есть если вы наберете десяток файлов и дадите команду "Download all", то собака бросится не за десятью зайцами, а только за двумя (за остальными потом). Помня печальный конец поговорки о зайцах, я обычно более одного соединения за раз не назначаю.

    Продолжив знакомиться с установками, я выбрал вкладку Dial-up Networking. Из ее названия видно, что нужно выбрать один из настроенных файлов Dial-up, затем ввести имя пользователя и пароль, количество повторов дозвона, таймаут и заголовок окна Reestablish Connection (чтобы в случае появления такого окна из-за падения соединения повторить набор). Нужно заметить, что это весьма предусмотрительный ход.

    Что еще понравилось сразу?

    Понятие зоны, на которую можно бросать ссылки, имеется и в "Гозилле". Достаточно нажать на иконку Drop Target, и все окно свернется в маленький квадратик, который всегда находится на плаву, поверх остальных окон. На квадратике Drop Zone изображен красный глаз "Гозиллы", и когда вы бросаете на него ссылку, он рычит и мигает вам глазом. Настоящий "пес"! Кроме переноса ссылки умная "собака" умеет перехватывать ссылки и из буфера обмена, когда я нажимаю кнопку Copy shortcut. Если вы хотите, чтобы после создания каждого задания можно было вставить комментарий, пометьте пункт Go _ Options _ Files _ Auto description.

    А далее самое интересное! Проверив свойства любого пункта в расписании, я обнаружил, что на этот диалог стоит посмотреть внимательнее.

    Кроме имени файла и описания (которое вы можете ввести на память), "Гозилла" запоминает страницу, с которой эта ссылка взята (может пригодиться). Полученный файл можно внести в одну из групп (Categories). Таким образом, легко отличать зайчиков от птичек.

    Ниже виден список Host Machine - сайтов, с которых вы хотите скачать файл. Если вы в данную секунду в Интернете, то программа прикинет, насколько долго бежать до нужного узла.

    • Hops - количество узлов до нужного сайта.
    • Trip - среднее время, которое нужно, чтобы сбегать туда и обратно.
    • Loss - стабильность соединения.
    • Status - состояние узла (No response значит: отвечать не хочет).

    Итак, я помню, что когда я собирался качать этот файл с сервера, меня спрашивали, с какого из 10 сайтов я хочу качать. Руководствуясь правилами географии, я выбрал тот, который ближе к дому. "Гозилла" позволяет уточнить этот процесс. Конечно, ситуация может измениться к тому моменту, когда будет запущен процесс. Но это не страшно. Если вы не выбрали ни один из сайтов конкретно, то умный "пес" сам решит за вас эту дилемму. Если же вы настаиваете на том, что лучше знаете сами, тогда он побежит по указанному адресу.

    А теперь о главном! Суть в том, что если бы "Гозилла" только загружал файлы по ночам, об этом не стоило бы столько писать. Его возможности гораздо шире. Этот "песик" должен быть вашим верным помощником наравне с браузером. И он может это!

    В настройках "Гозиллы" (Go! _ Options _ Automation) имеется пункт "Интеграция с браузером" (Integrate with browser clicks), позволяющий перехватывать щелчки на ссылках файлов указанных типов. По умолчанию там вставлены все виды архивных и выполняемых файлов. Пункт "Запускать "Гозилла" при запуске браузера" (Start Go!zilla when browser launched) позволяет связать обоих "псов" в одну упряжку. Никаких проблем: щелкаете в Navigator на архиве, и Go!zilla начинает его качать тут же. Показалось, что слишком долго - отложили до ночи. Браузер делает одну работу, а Go!zilla - другую, но вместе они работают на вас!

    Go!zilla использует технологию resume для ftp, если сайт обладает такой возможностью. В процессе загрузки файла Go!zilla особым значком показывает, что сайт поддерживает resume. Очень интересно и то, как "пес" определяет с какого сайта качать файл, если у него есть выбор. Прикинув, до какого сайта ближе, он проверяет его наличие в собственном динамическом списке узлов, поддерживающих resume. "Гозилла" может выбрать узел более медленный, но позволяющий докачивать файлы, полагая, что это ускорит процесс. Так как вопрос это спорный, то используется некоторый процент вероятности "Favor smart restart Sites by", который вы можете установить сами. По умолчанию это 25%. Не правда ли, интересно?

    Поиск по ftp-архивам тоже находится в арсенале "Гозиллы". Вы можете задать три адреса поисковых машин. Результат легко перенести в расписание.

    Регулярное проверка изменений - это функция Smart Update. В самом деле, зачем самому заниматься рутинной работой? Дайте задание "Гозилле" и проверяйте результаты. Спектр применения Update очень широк: узнать погоду, телепрограмму или котировки акций, когда вышел свежий номер "Компьютерры", новости и т. д.

    Функция "ограбления" сайта в программе называется Leech Files. Вещь это весьма полезная, и вызвать ее можно в любой момент, находясь на нужной странице.

    Недостаток у "Гозиллы" только один - это новый и потому немного сыроватый продукт. Время от времени он выкидывает странные штуки. Например, начинает принимать Winword за сервер Интернет. Слабовата и документация на программу. Хотя платить за "Гозиллу" не обязательно, но в бесплатном случае вам придется мириться с рекламой, которая появляется прямо на его окне. Если вы согласны с этим или вам нравится реклама, то, пожалуйста, за вас будут платить рекламодатели. Свободная от рекламы версия стоит 20 долларов.

    Очень популярна программа ReGet (версия 1.3.0), написанная нашим соотечественником Владимиром Романовым.

    Адреса серверов, где можно найти ReGet:

    http://reget.quite.net

    Программа надежно обеспечивает операцию получения файлов, а вот дополнительных функций у нее значительно меньше. Полностью отсутствует возможность автоматического дозвона до провайдера и запуск по времени. В этом случае нужно воспользоваться программами типа Schedule. Тем не менее, у нее есть один важный плюс: версия с русским интерфейсом распространяется бесплатно.

    Так же бесплатно распространяется и популярная программа Net Vampire (автор Alex Shovkoplyas). Найти ее можно по адресу http://www.kulichki.com/~vampire/.

    Удачной охоты и богатых трофеев!

     

    О теории вопроса

    Во-первых, передача файлов может осуществляться по протоколам HTTP и FTP. Известно, что для HTTP достаточно одного соединения с сервером. Программа передает браузеру команду, который в ответ посылает вам файл. В случае возникновения ошибки сообщение о ней посылается по этому же каналу следом. Затем соединение закрывается. Для протокола FTP требуется установить два соединения: программа с сервером (команды), в ответ сервер с программой (канал данных).

    Что плохого из этого следует? Когда я хочу скачать файл с FTP-сервера, моя программа посылает ему команду GET и затем начинается прием файла. Если произошел разрыв соединения (клиент получает соответствующее сообщение и маркер со смещениями обрыва), необходимо немедленно послать команду REST ssss, и процесс продолжится. А теперь плохое: не все серверы FTP и proxy поддерживают команду REST (некоторые поддерживают, но только типа REST 0).

    Получать данные по протоколу FTP через proxy-сервер тоже непросто. Proxy в режиме firewall блокирует соединение, которое хочет создать FTP-сервер. Он же не знает, что это вполне законное соединение, а не вторжение врагов. В этом случае программа должна перевести FTP-сервер в пассивный режим командой PASV. Затем программа указывает порт, через который пойдут данные, и сервер начинает посылать данные по нему, как только получит команду.

    Если же ничего с FTP-протоколом не получается, можно качать с FTP-сайтов через HTTP (кстати, так поступает и стандартный браузер). Это бывает даже полезно, так как в жизни наблюдаются и такие вещи, когда FTP-сервер одной известной фирмы не умеет делать докачку, а HTTP - умеет. При приеме файла по протоколу HTTP в запрос вставляется поле "Range: bytes nnn". Если команда не поддерживается, файл читается с начала.

    Серверы, поддерживающие докачку (http://www.headlightsw.com/servers.html)

    СерверыHTTP-серверFTP-сервер
    Netscape версии 2.0 или старше на любой платформеДа -
    Microsoft IIS от версии 3.0ДаНет
    Apachie от версии 1.2Да 
    O'Rielleys WebSiteДа-
    ServU FTP-Да
    War-FTPD от версии 1.0-Да
    Microsoft Personal Web serverНетНет
    WebSTAR/1.3.2Нет-
    XitamiНет-
    Vermillion FTPd-Нет
    InterCon InterServer Publisher FTP Server-Нет
  • © ООО "Компьютерра-Онлайн", 1997-2020
    При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.