Информер погоды от Яндекса с определение города по 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. Сервис обновлен.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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