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

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

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

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

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

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

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

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

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

Со временем вы, конечно, привыкнете к этой абракадабре и даже научитесь набивать ее своими ручками. Пока же не напрягайтесь: любезный поисковик 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. В нашей клиентской программе выбираем любой сервер из данной сети и соединяемся с ним.

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

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

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

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

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

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

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

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

1 Начало серии статей о методах изыскания, накопления, обработки и анализа информации (МИНОА) — в D' №22 от 29 ноября 2010 года.

2 Юниксоид — пользователь операционной системы Unix.

3 Пользователь протокола IRC.

Скриншот 1
Скриншот 2
Скриншот 3
Скриншот 4
Скриншот 5
Скриншот 6
Скриншот 7
Скриншот 8
Скриншот 9
Скриншот 10

У партнеров

    Реклама