Самое интересное в его работе, что все функции доступны независимо от IP адреса, Cookie. Необходимым условием работы всех функций является наличие aimsid, идентификатора активной сессии.
Проще говоря достаточно залогиниться (программно или через браузер - неважно) и получить данный идентификатор, который имеет вид:
Код:
00S.XXXXXXXXXX.ZZZZZZZZZZ:YYYYYYY
где YYYYYYY - номер ICQ, а 00S (если я правильно понял) кол-во входов в WebIcq, включая текущий. После чего можно с любого IP адреса использовать функции. Например поиск по email, icq, имени и т д.
Чтобы его получить, нужно выполнить некоторые действия, в ходе которых нам нужно будет извлечь определенные данные.
Для отслеживания запросов я использую HTTP Analyzer v6
1.Залогиниться.
Нужно отправить POST запрос по адресу
Давайте разберем его на части в виде параметров. a - token assertCaps - неизменный параметр = 0946134E4C7F11D18222444553540000 events - как я подозреваю, это список доступных функций или что-то вроде этого = myInfo,presence,buddylist,typing,im,sentIM,dataIM, offlineIM,userAddedToBuddyList,lifestream,service interestCaps - тоже неизменный параметр = 8eec67ce70d041009409a7c1602a5c84 k - devID ts - hostTime sig_sha256 - сложный хеш. Мне удалось найти в старой документации Aol, как он должен бы формироваться:
" base64_encode[HMAC-SHA256(sessionSecret, pwd)] "
В ответ мы получаем:
где нас интересует aimsid и rnd
Если программная реализация получения слишком сложна, можно любым сниффером узнать эти данные и использовать подставлять их в программе.
Внимение! Эти параметры можно использовать только, пока активная
сессия. Если вы разлогинетесь - сессия закончится.
Рассмотрим пример анализа ответа функции поиска в Delphi, о которой я писал в начале.
Вот запрос:
Ответ приходит не в обычном виде, а в формате: application/x-amf
Поэтому возникают некоторые проблемы с его анализом.
Я написал 2 строчки кода,
чтобы было понятно как выглядит ответ, если попытаться его вывести:
Получить читабельный ответ можно посмотрев ответ в строек в режиме дебага.
1. Ставим брейкпоинт после запроса.
2. Смотрим нашу строку ответа:
3. Копируем в блокнот.
Все читабельное находится между ' ' , а спец. символы вынесены отдельно в виде #XX
И тут видна вся информация о найденных аккаунтах(е): (разбито на отдельные строки)
Теперь уже можно парсить строку и т д.
Искать данная функция может по емэйлу, нику, icq и т д.
Добавление контакта.
Тоже простая функция:
На этом все. Надеюсь, информация оказалась интересной.
P.S
По поводу бана и частоты запросов:
После 10 последовательных запросов достаточно сделать 8с перерыв, дабы избежать блокировки.
Бана как такового нету, есть блокировка на примерно 20-30 секунд.
(C) Z.Рэйзор 2012
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Рэйзор; 14.01.2012 в 19:45.
Тут есть очень много методов. Наиболее часто с защищённым протоколом работают средствами Indy. Более полный ответ вы можете найти в интернете.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Отправляешь post запросом но на форму кидаешь компонент HandlerSocker из вкладки indy I/O handlers
...и получаешь ошибку из-за отсутствия динамических библиотек OpenSSL...
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для начала, удаляем indy))), берём synapse, после чего кидаем либы синапса в папку с проектом, все без разбора, (так легче), далее добаляем в uses - ssl_openssl. Всё. Все запросы далее будут работать в независимости от того, http или https.