Забыли пароль?

Зарегистрироваться на сайте

Отменить

МИНОА. Часть 4

Сергей Голубицкий, Журнал D` (Д-штрих) №6 (114), 28 марта 2011 года

О том, как получить доступ к бездонному кладезю информации при помощи нескольких несложных команд

В прошлом выпуске я обещал завершить изучение первого этапа алгоритма МИНОА и перейти к технике накопления собранных материалов в специализированных базах данных, оптимально подходящих для последующего анализа и изучения. Каюсь — погорячился! За кадром остался еще один очень важный и одновременно экзотический кладезь информации, который было бы непростительно обойти вниманием — Internet Relay Chat (IRC). Посему именно им мы сегодня и займемся, а в следующий раз непременно обратимся ко второму этапу нашей техники.

Мотивация использования IRC

Во всех самоучителях по интернету есть глава, посвященная Internet Relay Chat — древнему протоколу, созданному в юрский период (1988 году) финским гиком Яркко Ойкариненом. Изначально он использовался юниксоидами планеты для обмена сообщениями в режиме реального времени (в противовес неспешной электронной почте). Как вы понимаете, IRC — это прадедушка современных чатов, а потому неудивительно, что сегодня широкая публика слыхом не слыхивала об этом экстравагантном информационном поле.

Есть и еще один момент. Обычные люди, живущие полноценной внекомпьютерной жизнью, внутренне содрогаются от слова Unix, так что они ни за какие коврижки не соглашаются заглядывать в IRC. Особенно после того, как прочитают в самоучителях что-нибудь типа: «Команда подключения к каналу #dom (разговоры на общие темы, русский язык) выглядит как /join #dom. Если введенная Вами строка не начинается со слэша, фраза попадет на текущий канал». Сегодня использование командной строки типа /join #dom для чата равносильно связыванию двух консервных банок бельевой веревкой для имитации телефонного разговора (помню, в школьные годы на уроке не то физики, не то обществоведения мы ставили подобный практический эксперимент). Это в эпоху-то ICQ, MSN, AIM и чата под Java? Увольте.

В самом деле, залезать в IRC ради чата сегодня бессмысленно. Изюминка, однако, в том, что он там на данный момент далеко не самое главное! В архивах миллионов компьютеров, связанных этим допотопным протоколом, хранятся тонны ценнейшей информации, представленной, как правило, в виде оцифрованных текстов, заимствованных из реальной жизни. В этом отношении он ничуть не уступает, а скорее даже превосходит новостные конференции Usenet (см. «МИНОА. Часть 2», D' №23 от 13 декабря 2010 года).

Читатели догадались, куда я клоню: «оцифрованные тексты из реальной жизни» — это, конечно же, книги, журналы, газеты, а также досье, протоколы заседаний-собраний-судов и прочие ценные артефакты, которые, может, и хранятся где-то в традиционном интернете (World Wide Web), однако практически не поддаются извлечению на свет божий поисковыми машинами.

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

Установка и настройка IRC

Общий алгоритм изыскания информации по протоколу Internet Relay Chat выглядит таким образом:

1. Первым делом мы устанавливаем специальную программу-клиент для работы с IRC.

2. Затем тратим минут десять на изучение самых элементарных команд юниксоподобного языка, обойтись без которых, увы, не получится. Одно утешает: ничего собственноручно набирать не понадобится, поскольку управление в большинстве случаев осуществляется с помощью буфера обмена (copy-paste).

3. На специализированных поисковых веб-сайтах мы узнаем, в какой сети IRC и на каких серверах располагаются нужные нам файлы (документы).

4. Полученную информацию мы вводим через клиент IRC и загружаем на свой компьютер.

Идем по порядку. Программ-клиентов для IRC под Windows — море разливанное. Однако мы не будем тратить время на изучение их сравнительных характеристик и сделаем ставку на мой более чем 15-летний опыт софтверного ковыряния. Итак, лучший вариант для Windows — mIRC, для Mac OS X — Colloquy. Демонстрацию я буду проводить на своем рабочем компьютере, а значит, с помощью последней из них.

Я прекрасно отдаю себе отчет, что нас, маководов, в мире меньше, чем «форточников», однако моя задача — заставить читателей не слепо копировать действия, а усвоить общий алгоритм работы. При таком подходе разница между операционными системами и программами ничтожна, поскольку после прочтения этого руководства у вас будет полное понимание того, как устроен протокол. Ну, а команды, посылаемые в IRC-каналы, полностью унифицированы, то есть в любой среде выглядят одинаково.

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

Поскольку мы не собираемся использовать IRC для форумных бесед и чатов, большинство настроек программы, как то: авторские послания для входа в сеть, выхода из нее, состояния занятости, неповторимые подписи, призванные оттенять вашу индивидуальность, и прочие детскости (хорошо знакомые читателям по ICQ) — нам не потребуются. Смело пропускайте все это, соглашаясь на выставленное по умолчанию.

Мир IRC по своей структуре подобен конференциям Usenet: вся информация и весь обмен данными происходят на различных объединенных в сети серверах, которые, в свою очередь, разделены на каналы. Существуют постоянные каналы, где собираются тысячи участников информационного обмена, а также временные, которые может создать для нужд собственного конфиденциального общения любой желающий. Кроме того, они бывают открытыми (общими) и закрытыми (приватными).

Самые известные и популярные сети в IRC — IRCNet, Rizon, EfNet и UnderNet. Все эти детали, впрочем, не имеют ни малейшего значения, поскольку наше присутствие на сервере той или иной группы будет продиктовано исключительно наличием нужной информации. А какая, собственно, разница, как называется место, где все это добро хранится?

Использование IRC

Установив клиентскую программу, мы на время с ней попрощаемся и перейдем в привычный Web, поскольку именно там начинается поиск на серверах IRC. Поисковых систем по Internet Relay Chat множество, и все они объединены одним понятием packet downloads.

Почему packet («пакет»)? Дело в том, что непосредственно этот протокол используется по прямому назначению — для чата. А вот передача бинарной информации (то есть файлов, документов и т. д.) осуществляется через так называемый DCC — Direct Client Connection, протокол прямого общения между пользователями, в котором обмен осуществляется именно «пакетами». Соединение идет в обход существующих серверов IRC — в этом преимущество для передачи файлов. Главное, однако, заключается не в невозможности перлюстрации и цензуры содержания сессий DCC со стороны вездесущих модераторов и теоретически мистического «Большого Брата», а в надежности этого соединения в сравнении с традиционным. Коннект IRC всегда осуществляется через централизованные серверы, подверженные сбоям, разрывам связи и прочим напастям. Кроме того, DCC поддерживает докачку программ после разрывов соединения — штука абсолютно незаменимая при получении какого-нибудь объемного материала на 1,5–2 Гб.

Но вернемся к пакетному поиску. Самый известный на сегодня веб-портал для изыскания в IRC — это PacketFind (www.packetfind.com). Я сейчас продемонстрирую вам, как все это работает, на двух небольших примерах. Для начала отправим запрос по нашей учебной теме — Wikileaks (см. рисунок 1).

Результатов, как видите, немного, хотя для первого раза достаточно. Я давно слышал о немецком документальном фильме «Wikileaks — война в Сети» и хотел его посмотреть. Однако на торрентах я его не нашел, а качество на Youtube всегда оставляет желать лучшего. В данном случае мы видим, что фильм есть в IRC, а именно в сети abjects.net, на канале #evil, у бота [XDCC]|veve, в пакете под номером 0015.

Пояснения требует лишь слово «бот» (на жаргоне айарсишников — «крот») — робот, автоматизированная система, в данном случае распределяющая файлы. И это замечательно, поскольку всегда приятно иметь дело с беспристрастными машинами, а не ефрейторствующими модераторами.

Как получить у него нужный нам файл? В общем-то, просто: кликаем на линк с пакетом #0015! Поскольку мы уже установили клиентскую программу IRC, все обращения к данному протоколу будут автоматически перехватываться либо Colloquy, либо mIRC. Ссылка на файл Weltmacht WikiLeaks Krieg im Netz содержит адрес irc://irc.abjects.net/evil — именно этот запрос отработается в вашем клиенте (см. рисунок 2).

Итак, мы находимся в гостях на #evil (по ходу дела все каналы в IRC начинаются со знака #). Как видите, жизнь тут кипит ключом: по экрану пролетают отчеты о количестве отгруженных пакетов, скорости передачи, названиях и размерах файлов. Не будем, однако, отвлекаться: наша задача — забрать у бота [XDCC]|veve пакет #0015. Попробуем дать команду непосредственно в канале — для этого в нижней части окна (в командной строке) печатаем /ctcp [XDCC]|veve xdcc send #15 (см. рисунок 3).

Со временем вы, конечно, привыкнете к этой абракадабре и даже научитесь набивать ее своими ручками. Пока же не напрягайтесь: любезный поисковик PacketFind в момент клика по линку пакета #0015 уже автоматически скопировал все, что нужно. Так что от вас требуется просто нажать Ctrl + V (Command + V на Mac) в командной строке окна канала #evil и затем Enter.

Для того чтобы не чувствовать себя подопытной обезьяной, стоит все же хоть поверхностно разобраться в смысле того, что мы отправили. /ctcp устанавливает связь по Client-To-Client Protocol, самому распространенному протоколу прямого взаимодействия между пользователями сети IRC. Далее следует имя бота — [XDCC]|veve, затем команда xdcc send #15 — как вы догадались, это приватный запрос нужного пакета.

Обратите внимание: мы отправили запрос на отгрузку файла прямо в #evil. К сожалению, такое не всегда возможно. Многие каналы не позволяют общаться с роботами напрямую и требуют открытия приватных сессий. В данном случае опасение подтвердилось: ответа мы так и не получили.

Нам ли горевать! Не вышло достучаться напрямую, сделаем это непосредственно в берлоге самого [XDCC]|veve. Для этого существует специальная команда — /dcc chat. Вот как это выглядит.

Запрашиваем приватную сессию: /dcc chat [XDCC]|veve. Открывается отдельное окно для общения с ботом, в котором мы повторяем запрос на скачивание /ctcp [XDCC]|veve xdcc send #15. В зависимости от того, как вы настроили свое приложение, либо загрузка начнется автоматически, либо появится запрос о том, что кто-то пытается послать вам файл. Вы можете согласиться принять его (нажав на кнопку Accept) или отказаться (Ignore).

Поиск данных для скачивания

Не всегда, конечно, информация в IRC лежит на поверхности, как в нашем импровизированном примере: в девяти случаев из десяти придется серьезно попотеть, чтобы докопаться до нужного материала. Собственно, у нас есть три варианта для поиска данных. Первый я только что продемонстрировал: послать запрос через веб-интерфейс поисковой пакетной системы в Web. Второй — пользоваться какими-то форумными наводками или вступать в живое общение, получая от других пользователей сведения на нужную тему. В этом смысле протокол становится похожим на конференции Usenet.

 

Наконец, третий, пожалуй, самый перспективный путь: искать что-то внутри популярных профильных каналов, названия которых вы легко найдете по прямому запросу в Google. В качестве примера предлагаю тривиальный поиск какой-нибудь редкой книжки. Для этого отправляемся на известный (в очень узких профессиональных кругах) канал #bookz, который расположен в сети UnderNet. В нашей клиентской программе выбираем любой сервер из данной сети и соединяемся с ним (см. рисунок 4).

Кликаем в меню на опцию Join Chat Room и указываем в окошке имя канала (см. рисунок 5). Обходной вариант: напечатать прямо в консольном окне сервера us.undernet.org команду /join #bookz (см. рисунок 6). И мы попадаем в уже знакомое читателям пространство — на канал IRC (см. рисунок 7).

 

Попробуем теперь отыскать какую-нибудь книгу. Скажем, роман Сары Груэн «Вода для слонов» (Water For Elephants), который в марте 2011 года занимает первую строку в списке 150 бестселлеров США. На разных каналах IRC допускаются разные команды для поиска: @find, @search, @seek. На #bookz можно использовать даже @booksearch — все зависит от того, как отконфигурированы поисковые боты (см. рисунок 8).

Не успел я ввести в командную строку @find Water for Elephants, как тут же посыпались ответы от роботов. Взгляните на левую колонку окна — melz и EBrarian — это и есть имена заботливых «кротов». Отправляемся в приватный чат к EBrarian, который обещает сразу несколько линков в контексте моего запроса. Отсылать специальную команду для создания приватной сессии нет необходимости — наша программа уже автоматически эти окна открыла, просто кликаем на EBrarian в левой колонке (см. рисунок 9).

Как видите, нужная книга найдена, причем сразу в нескольких форматах — RTF, RGO и Epub. Для моего iPhone идеально подойдет Epub. Далее просто скопируйте ссылку с экрана, начиная с «!» (восклицательного знака) и заканчивая расширением файла (в данном примере RAR), а затем вставьте ее, только не в окно приватного чата с EBrarian, а непосредственно в окно канала #bookz (см. рисунок 10), нажмите Enter.

Мой клиент настроен на автоматический прием файлов без подтверждения (не советую, кстати, этого делать до тех пор, пока вы не будете чувствовать себя в IRC как рыба в воде, иначе вам на компьютер понаприсылают без спроса такого, что за год не отмоетесь), поэтому загрузка началась мгновенно (см. рисунок 11).

Это, впрочем, больше исключение, чем правило. Чаще происходит так, что бот помещает вашу заявку в лист ожидания, который иногда растягивается на 50–100 мест. Однако конечный результат всегда будет победным: через 10 минут или через час, но вы получите то, что искали.

В качестве реверанса любителям морально-этической экзотики, сравнивающим безвозмездное скачивание электронной книги с кражей булки из магазина, размещаю дисклеймер: «Дорогие читатели, после прочтения книжки Сары Груэн непременно удалите ее с компьютера, посетите Amazon.com и купите бестселлер по цене $8,22 с доставкой в Россию за какие-то несчастные $35!»

Уф! Ну, все! Теперь-то уж точно со сбором информации закончили и в следующем выпуске перейдем наконец к созданию информационной базы данных.


Мои портфели
Индикаторы
Индексы
MICEXINDEXCF2 047,42–0,4606.03
RTSI1 110,46+0,2006.03
Акции
GAZP134,60–0,1506.03
GMKN9 324–0,1306.03
LKOH3 079–0,2106.03
ROSN332,0–1,3406.03
SBER162,00–1,4606.03
VTBR0,06600,0006.03
Курсы валют
EUR77,35+0,6322.08
USD67,180,0022.08
EUR/USD1,09–0,5331.12
GBP/USD1,47–0,4331.12
USD/JPY120,17–0,2831.12
EURUSD_TOM1,060,0006.03
EUR_TODTOM0,02–0,0406.03
USD_TODTOM0,02–0,0306.03
Мировые рынки
Dow17 473,32–0,7431.12
FTSE6 242,32–0,5131.12
Nikkei 22519 033,71+0,2730.12
S&P 5002 049,94–0,6531.12
Золото1 059,98–0,1231.12
Нефть Brent37,6+3,1331.12