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

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

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

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

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

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

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

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

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

Теги: Яндекс, CNGeoip, GeoIP, JavaScript, программирование

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

  1. ВЛАД пишет:

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

  2. Vlad пишет:

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

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

  3. Vlad пишет:

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

  4. Alf-nn пишет:

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

  5. Alf-nn пишет:

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

Оставить комментарий

Вы должны войти чтобы оставить комментарий.


Реклама

buy cheap alprazolam online, purchase duromine pills