Здравствуйте. У меня стоит задача определить адрес пользователя, который зашел на сайт.
Базу городов и ip адресов я нашел и настроил под себя. Но беда в том, что ip адрес определяется странно.
Ip адрес я определяю следующим образом: $ip = $_SERVER['REMOTE_ADDR'];
Существуют сервисы, определяющие твой ip адрес, так вот, к примеру мой ip адрес моим скриптом определяется как 192.168.8.121. Этого ip адреса в базе моих диапазонов нет, да и сервисы, определяющие город по ip ничего не найдут.
Но сервисы, определяющие мой ip, выдают мне другой адрес: 109.195.134.64. Вот этот адрес уже есть в базе и город определится.
Подскажите пожалуйста, что я делаю не так и как сделать правильно?
Заранее благодарен всем отозвавшимся.
Задача - полунерешаемая. Ибо во-первых о чем уже написали про белые/серые адреса, во-вторых tor и прочие анонимизаторы, в-третьих - всяческие "ускорители интернета" - по сути яндексовские, оперовски и другие прокси.
Видимо у вас сайт крутится на вашей машине, и вы сами на себя заходите по локальному адресу.
А 109.195.134.64, это адрес не вашей машины, а вашего роутера, через который вы ходите в интернет.
Сайт крутится не на моей машине, но спасибо за совет, почитаю обязательно.
Если интересно, проблема была в том, что nginx подменял заголовки своими ip адресами. Поправил конфиг nginx-а и все заработало.