2010-06-30 6 views
1

Извините за так noobish вопрос, но как я могу это сделать с C++? Мне нужно получить названия стран и их двухбуквенные или 3-буквенные ISO-коды (или что бы они ни называли) с использованием заданного IP-адреса. Есть ли способ сделать это легко?Как получить название страны и/или код по IP-адресу?

Единственными двумя способами, которые я нашел, является использование библиотеки GeoIP C или загрузка бесплатной базы данных, но есть ли что-то более динамичное? Я имею в виду, есть ли бесплатный веб-сервис с современным db, который я могу использовать для своей цели, используя завиток или что-то в этом роде?

Заранее спасибо.

+2

обязательная ссылка xkcd: http://xkcd.com/195/ – cobbal

+1

Вы не думали, что будет только один, не так ли? http://xkcd.com/713/ – MSalters

ответ

2

MaxMind.com предоставляет набор web services для геолокации. Они не бесплатны, но дешевы для поиска.

Один из моих клиентов использует службу поиска на уровне города, каждый из которых кэшируется в течение разумного периода времени (из памяти, 2 или 3 недели), поскольку блоки IP-адресов часто не меняют местоположение.

Приложение также подсчитывает количество фактических запросов для отправки уведомления администратора, когда количество оставшихся в подписке становится низким, поэтому его можно пополнить вручную.

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

+0

Я также использую MaxMind. Есть несколько примеров интеграции их GeoIP с различными языками. http://www.maxmind.com/app/api – Craig

0

http://www.hostip.info предлагает API.

+0

Похоже, что их веб-сайт все еще работает, но API больше не работает. Последняя активность на их форуме была почти четыре года назад, так что похоже, что они больше не предлагают эту услугу. – Elkvis

Смежные вопросы