My Open Source Projects
O.S.S.
My Free Software
Free Soft
Articles and Documentation (in Russian)
Articles
My photoalbum and photographer notes
Photo
Windows Logos (Cool replacements for Windows 95/98 startup, shutdown and switchoff screens)
WinLogos
Site Archive (Site design gallery, dead sites gallery, old guestbooks...)
Archive
Contact information (quick email, email, ICQ etc)
Contacts
ENG
RUS

Last modified: May 10, 2008

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

<img src="http://web.icq.com/whitepages/online?icq=номер-аськи&img=число-вид-индикатора"
alt="My ICQ Status">

Один минус - индикатор работает очень плохо и жутко тормозит :)

Как показать состояние ICQ на своей домашней странице

Введение

Если у вас есть своя домашняя страница, и вы хотите получать обратный ход от ее посетителей, то вы наверняка поместите на нее свои координаты - email, номер ICQ и так далее. Довольно забавной фичей может быть показ значка вашего состояния в ICQ, как минимум - информация о том, находитесь вы прямо сейчас в сети или нет.... (тут можно еще написать различной пурги, но мне пока лень :)) ).

Старым решением было использовать скрипт от Мирабилис - была у них такая программка, которая отсылала по сети картинку с обозначением состояния пользователя, причем был выбор из картинок разного стиля, а они могли сообщать не только "онлайн/оффлайн", но и дополнительные состояния типа Away, DND и так далее. Для использования такой удобной фичи было достаточно вставить на страницу тег вроде:
<img src="http://online.mirabilis.com/scripts/online.dll?icq=121434875&img=1">
Увы, всему хорошему приходит конец, и эта программка была прибита. Не знаю, из каких соображений - безопасности (чтобы спамерам было сложнее видеть пользователей в сети?), или быстродействия - но теперь этот код показывает нечто бесполезное.

Новый способ, изобретенный мной, заключается в использовании ICQ Web Front и собственного PHP-скрипта. Web Front - это плагин к Аське, превращающий ее в мини вебсервер. То есть, при подключении Аськи к сети, на вашем компьютере появляется маленький вебсайт, на который другие пользователи могут попасть, используя перенаправление:
http://members.icq.com/ваш-номер-ICQ
Сразу после установки Web Front, этот мини-сайт генерируется в некотором виде по умолчанию. С него другие люди могут видеть ваши данные и скачивать специально выделенные вами файлы.

Минусом использования Web Front является то, что люди могут видеть ваш сетевой адрес (IP), т.е. злобный хакер - ваш враг (буде таковому случится) может атаковать ваш компьютер. Другая проблема - если у вас медленное соединение с сетью, посетители Web Front'а могут забивать канал, что тоже обидно. В общем, рекомендую держать на компьютере firewall. Кстати, можно заблокировать файрволом доступ к Web Front, тогда на него никто не сможет зайти, но для определения вашего сетевого статуса это неважно :)))

Идея заключается в том, что в зависимости от того, в сети вы или нет, http://members.icq.com/ваш-номер-ICQ возвращает либо перенаправление (фреймами) на ваш мини-сайт (если ICQ включена), либо сообщение "веб фронт недоступен" (если ICQ выключена). Ваш сайт может сделать соответствующий запрос, проанализировать полученный ответ и вывести "ONLINE" или "OFFLINE" посетителю.

Конкретный алгоритм

  1. Установите ICQ Web Front. Эта фича есть только в новых версиях аськи (2002), поэтому рекомендую скачать самую последнюю. Инструкции далее относятся к ICQ 2002a:
    1. В Аське: My ICQ - Add/Remove Features - Install new Features
    2. Выделите Web Front и скажите Add Features. Аська скачает и установит плагин.
    3. Если у вас на компьютере есть другой вебсервер или прокси, надо поменять порт, на котором будет "сидеть" веб фронт: Services - My ICQ Web Front - Customize My ICQ Web Front - Advanced - Web Server Port Number. Установите порт на другое значение, например, 90.
    4. Включите ICQ Web Front, нажав Services - My ICQ Web Front - Activate My ICQ Web Front.
    5. Проверьте, работает ли ваш Web Front, открыв http://members.icq.com/ваш-номер-ICQ (например, http://members.icq.com/110345832) в любом браузере. Должна появится симпатичная страничка в аськином стиле, с вашим статусом и информацией.
  2. На веб сайт положите скрипт, который будет анализировать страницу http://members.icq.com/ваш-номер-ICQ и выдавать соответствующее сообщение. Вот пример такого скрипта на PHP4, выводящего сообщение о вашем состоянии прямо в текст веб страницы:
    <?php
      // ICQ Web Front Activity Detector 1.0 by Sergey A. Galin, 2002
      // http://sergey_galin.chat.ru
    
      $icq="110345832"; // Change this to your ICQ number
    
      $front="http://members.icq.com/$icq";
      $linkto="http://wwp.icq.com/$icq";
    
      $f=@fopen($front, "rt");
      $tx=@fread($f, 1024);
    
      echo 
        "<a href=\"$linkto\" target=\"_blank\" title=\"", 
        "Щелкните, чтобы открыть мой персональный Центр Сообщений ICQ",
        "\">Мой текущий статус ICQ: ";
      if(!strlen($tx)) 
        echo "определить не удалось";
      else
        if(strstr($tx, '<frame src="http://')!==false)
          echo "ONLINE - со мной можно поговорить прямо сейчас ($icq)";
        else 
          echo "OFFLINE";
      echo "</a>";
    
    ?>
    Минусами этой версии является то, что она должна быть установлена непосредственно на сайте (который должен еще поддерживать PHP), и то, что в случае проблем со связью между сервером страницы и ICQ страница дольше грузится. Можно избежать этого, положив этот код в отдельный файл и загрузив его внутрь страницы внутри inline frame (тег iframe).
    Другая версия скрипта, использующая картинки, есть на этом сайте. Вы можете использовать ее так:
    <img src="http://sageshome.net/services/icqstate.php?icq=ваш_номер_ICQ"
    width=88 height=31 alt="Мой статус ICQ" border=0>
    Но не забудьте сначала настроить свой ICQ Web Front!

Click to open My Personal ICQ Messaging Center

Go to Start page
© Sergey A. Galin, 1998-2009http://sageshome.net/enotes/howto/icqsta...>>
Time: 0.011s · ICQ State: 17543/18554 Total: 1060243/1253304