2013-12-01 2 views
1

Я пытаюсь получить местоположение от IP-адреса использования. Существует много тем, как это сделать. Я действительно like this one, он работает и очень ясен. IP-адрес, используемый в этом примере, находит местоположение где-то в Германии, но когда я использую свой IP-адрес (192.168.0.7), все возвращается как неизвестное. Когда сайт будет только онлайн, я бы не использовал свой IP-адрес, я бы нашел IP-адрес пользователей, используя PHP.Получить расположение формы IP-адрес пользователя

if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
      $ip = $_SERVER['HTTP_CLIENT_IP']; 
     } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
      $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
     } else { 
      $ip = $_SERVER['REMOTE_ADDR']; 

     } 
$ip = '192.168.0.7'; //replace with my IP address 

Я также наткнулся на this site, который находит свой IP-адрес, который является достаточно точным, за исключением числа различны. 2.126.219.101

Есть ли способ проверить, что у меня есть на локальном хосте, чтобы получить мой IP-адрес с использованием вышеуказанного метода или что-то не так с моим IP-адресом.

+1

192.168. * Является IP-адресом _private_. Вы не можете геолокализовать это, не имеет смысла (на данный момент, вероятно, есть тысячи компьютеров по всему миру с этим точным IP-адресом). Использовать общедоступные IP-адреса. – Mat

+0

так теоретически, если (! Empty ($ _ SERVER ['HTTP_CLIENT_IP'])) { $ ip = $ _SERVER ['HTTP_CLIENT_IP']; } elseif (! Empty ($ _ SERVER ['HTTP_X_FORWARDED_FOR'])) { $ ip = $ _SERVER ['HTTP_X_FORWARDED_FOR']; } else { $ ip = $ _SERVER ['REMOTE_ADDR']; } будет работать онлайн –

ответ

2

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

2.126.219.101 является вашим общественным IP-адресом. Насколько это касается любой машины за пределами вашей локальной сети, это ваш IP-адрес. Его можно использовать для указания местоположения.

+0

Это имеет смысл, но теперь это очень точно. Например, я живу на севере Англии, но я купил свой лоб в Лондоне. Мой публичный IP-адрес возвращается, поскольку Лондон не является моим фактическим местоположением –

+0

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

+0

Лучшим способом было бы использовать javascript и отображать данные после загрузки страниц. Было бы намного точнее –

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