Как точно определить местоположение посетителя моего сайта?

Мне нужен последовательный и надежный способ определить местоположение (штат/провинция, страна и т. д.) компьютера, который посещает мой веб-сайт, используя любое из следующих:

  • PHP
  • JavaScript
  • в MySQL
  • Любые Веб-Службы
  • что-то я не подумал?

Я не ищет заблокированную программу статистики 3rd party, такую как Google Analytics. Он уже используется и делает удивительные вещи, однако мне нужен доступ к информации на уровне кода.

идеальное решение должно позволить мне предоставить любую необходимую информацию (например, ip-адрес) и точно получить как можно больше информации о посещении. Получение страны происхождения является минимальным требованием, однако дополнительные услуги, такие как государства, широта и долгота, город и т.д. Было бы неплохо.

уточнение: мне нужно иметь возможность регулярно использовать информацию в PHP-коде. Не только посмотреть где-нибудь.

4 ответов


Это называется "геолокация" и Это было покрыто раньше.


Если вы имеете в виду 100% надежность, ее просто нет. Но вы можете использовать MaxMind для геолокации, если надежность означает менее 100%. У них есть версия с открытым исходным кодом:

http://www.maxmind.com/app/geolitecity

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


Hostip.info предоставляет бесплатный IP GeoLookup API для использования в вашем приложении. Однако IP-поиск не будет последовательным или надежным из-за простоты проксирования. Кто посещает ваш сайт из-за прокси-сервера, вероятно, будет неправильно.

тем не менее, это лучшее, что вы можете сделать с IP.


только для региона страны. библиотеки Geoip полезны.

в linux есть даже программа командной строки.

также вы можете захватить переменные среды с вашего PHP-скрипта.

вот скрипт Perl, который я написал некоторое время назад в дисплей переменные. Ничего особенного.

#!/usr/bin/perl

print 'Content-type: text/HTML' . "\n\n";
print "<body><center>";
print "<table border=1>";
print '<tr><td>' . $_ . "<td>" . $ENV{$_} . "<br>\n" foreach sort (keys(%ENV)) ;

вы можете увидеть браузер