Информер погоды от Яндекса с определение города по IP (готовый код)

Недавно я заинтересовался темой отображения информера от Яндекс.Погоды посетителю сайта в соответствии с его местоположением. Сам информер Яндекса показывает погоду только в том городе, который выбрал веб-мастер сайта. На практике смысла в таком информере мало (описано в предыдущей статье). Следовательно надо саому определять город, в котором находится посетитель, и выводить ему нужный информер. В процессе изучения темы, я пришел к выводу, что кроме GeoLite City от MaxMind и нормальных world-wide баз IP->Город нет. Однако, для взаимодействия с сервисом Яндекса база GeoLite City не подходит.

Таким образом, пришлось остановиться на базе CNGeoIP. Была куплена версия базы и на ней был построен алгоритм получения кода города для информера по IP посетителя. Написанный скрипт работает тут: http://ru.commontools.net//ya.w.js. Определяется город по IP пользователя, проводится сравнение с базой Яндекса и выводится id города и страны для информера в виде: var yaCountry=20;var yaCity=26850; Скрипт естественно работает на стороне сервера и выводит только id для JS. А на странице с информером скрипт включается в HTML-код страницы через <script src=»…»>. Далее другой незамысловатый скриптик подставляет переменные в код вызова информера и на картинке отображается погода в городе, в котором находится посетитель сайта. Под ней ссылка на настройки информера, где посетитель сможет выбрать другой город, а информация сохранится в cookies.

Итак, результат трудов доступен в виде оттестированной stable-версии. Страничка получения кода находится здесь: http://ru.commontools.net/geoip/ya.weather.get.html. Это страница для получения кода информера. На ней описано, как код получить и прикрутить к сайту.

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

Посмотреть, как информер работает, можно уже сейчас в моем блоге.

P.S. Для любопытных. Домен commontools.net является исключительно вспомогательным, на нем никогда не были и не будут никакие сайты. Только сервисы для собственного и общественного потребления.

UPD. Стадия бета-тестирования завершена. Уже более 7 месяцев информер успешно работает на множестве сайтов, по этому заявляю о стабильности версии. Обновлений пока не планируется, потому что обновлять-то нечего. Если поменяет свой алгоритм, тогда-то и будем обновлять.

Постоянно обновляется база IP. На декабрь 2008 работает ноябрьская версия.
UPD2. Сервис обновлен.

Об авторе Валера Леонтьев

Программист PHP/MySQL.
Запись опубликована в рубрике PHP, Web, Все рубрики с метками , , , , . Добавьте в закладки постоянную ссылку.

14 комментариев на «Информер погоды от Яндекса с определение города по IP (готовый код)»

  1. ВЛАД говорит:

    Здравствуйте,
    Я пробовал вставлять код с Яндекс в форму для обработки, но после мажатия кнопки «Обработать код», внизу браузера появляется сообщение Error on the page, а в шаге4 так и не появляется никакого результата. Я что-то неправильно делаю или услуга более не доступна?
    Благодарю

  2. Vlad говорит:

    Сервис будет открытый и дальше, бесплатный и свободный для использования по назначению.

    …Только вот не работает он, а так все круто!

  3. Vlad говорит:

    Код заработал! Ура! Спасибо!

  4. Alf-nn говорит:

    Чё-то когда я сайт свой открываю у меня вместо нужного города погоду в Амстердаме показывает!

  5. Alf-nn говорит:

    Приношу свои извинения! Сам виноват, на самом деле хак пашет как танк т-34.

  6. Vantedur говорит:

    Сервис периодически падает что не очень гуд.
    Можешь дать исходник?

  7. Сегодня обновил сервис, тепиерь должен работать стабильно.
    Исходники давать нет смысла, т.к. самое ценное здесь база GeoIp. БОльшая часть кода и так открыта (HTML и JS), а серверную часть определения IP, если уж базу купите, напишите сами быстро.

  8. Vantedur говорит:

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

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

    И еще, интересно, как ты замечаешь эти падения. Я, вот, что-то не замечаю.

  10. Vantedur говорит:

    Сколько эта база с обновлениями стоит?
    Замечаю легко, просто пол сайта из за этого перестаёт открыватся так как зависает на попытке открыть скрипт

  11. Про базу ина тут: http://www.cn-software.com/ru/cngeoip/
    Я создал зеркало сервиса на другом сервере. Возможно проблема «падений» связана с тем, что commontools.net территориально находится в Беларуси. Сервер ru.commontools.net стоит в России, в Питере.

    Делайте себе новый код: http://ru.commontools.net/geoip/ya.weather.get.html

  12. Vantedur говорит:

    можешь ответить мне в асю 9173719

  13. Не вижу в этом смыла. На крайняк, почта feedbee@gmail.com. Но врядле я чем-то больше помогу, чем написано тут.

  14. batonn говорит:

    Отличная штука Валера. Пользую ее на своем сайте http://rtv-pvo-gsvg.narod.ru/
    НО!!! Почему-то перестали отображаться Киев и Харьков!!!???

Добавить комментарий