2012-06-21 4 views
1

Есть ли способ получить страну, город (как правило: геолокационную информацию) с IP-адреса. Обратите внимание, что мое приложение - java.Geolocation IP в Java

Я посетил и попробовал много веб-сервисов, но я не нашел подходящего, и я предпочитаю писать свои собственные. Кроме того, я нашел несколько CSV DB, но и это решение не является предпочтительным вообще. пожалуйста помоги.

+0

Возможно, вы сможете сделать это, но ваши результаты будут приблизительными. Дело в том, что я могу распространять свои серверы по всему миру; у вас не будет возможности узнать мою внутреннюю топологию. –

ответ

5

Все, что вам нужно, это GeoIP, предоставленное компанией MaxMind.

Они предоставляют free GeoIP2 database - GeoLite2 и несколько GeoIP2 APIs (спасибо karel), включая Java API, для чтения файла базы данных.

Перед GeoIP2, был GeoIP, теперь они называли его GeoIP Lecacy, Free databases и downloadable Java library from maven.org или from github все еще доступны.

GeoIP Lecacy может быть мертв в будущем, однако, поскольку GeoIP2 не предоставляет Java API для чтения информации о базе данных (например, GEO-533LITE 20150303 Build 1 Copyright (c) 2015 MaxMind Inc Все права защищены), поэтому я все еще использую его на своем веб-сайте. Я использую GeoIP2 в своем ботре IRC, чтобы воспользоваться многоязыковой функцией GeoIP2.

+0

Спасибо. Но я действительно не предпочитаю таких решений. Я хотел бы знать, есть ли способ, которым я могу написать это в своем Java-коде. – Mem

+1

Я не думаю, что вы можете использовать чистый код java для * расчета * его географического местоположения, за ним должны быть некоторые базы данных (файлы или реляционные). Даже система ГИС имеет базовые базы данных (например, базу данных POI) –

0

В каждой стране имеется несколько IP-адресов.

Я не знаю о реализации Java, но вы можете использовать вывод из http://services.ce3c.be/ciprg/ и создать свой собственный код, который дает страну на основе IP-адреса.