Eu tenho um site em espanhol e não permito que pessoas de países não europeus se registrem e se conectem.
Há algum tempo, comecei a receber mensagens de usuários que não conseguem fazer login. Quando solicito o endereço IP, eles dizem algo como: 66.249.93.202. É o endereço IP do Google. Como eles conseguem isso em seus celulares? O que eles precisam fazer para usar o endereço IP real?
networking
ip
user1406271
fonte
fonte
Respostas:
O que você está vendo é o endereço de proxy do Google.
Os usuários móveis com um navegador Chrome (Android ou iOS) com os recursos de gerenciamento de largura de banda ativados geralmente são vistos usando um desses endereços como solicitante, conforme descrito aqui .
Em essência, os dados que você está servindo estão sendo solicitados pelo Google Data Compression Proxy
optimized
e enviados de volta ao usuário final.Eles não deveriam estar fazendo nada diferente.
Você pode verificar o
x-forwarded-for
cabeçalho conforme explicado na documentação vinculada anteriormente.fonte
Provavelmente, eles estão usando o proxy de compactação de dados do Google ( https://developer.chrome.com/multidevice/data-compression ).
E para responder sua pergunta (da mesma página):
fonte
Você pode obter o endereço IP do usuário diretamente se simplesmente servir o site por HTTPS .
Você provavelmente deveria fazer isso de qualquer maneira - especialmente porque mencionou que são páginas de login e registro.
Citando a partir da página Proxy de compactação de dados mencionada em outras respostas:
fonte
Talvez esses usuários usem o Chrome (móvel) com o Data Compression Proxy ( https://developer.chrome.com/multidevice/data-compression )
Você pode usar o
X-Forwarded-For
cabeçalho HTTP para localizar geograficamente o usuário com base no IP original do usuário (consulte as perguntas frequentes)fonte
X-Forwarded-For
cabeçalho pode ser facilmente falsificado, portanto, não é seguro confiar nesse cabeçalho.Eu tenho o mesmo problema. Mas não recebi o IP real.
X-Forwarded-For
Tenho o protetor de dados ativado, mas o índice X-Forwarded-For não está definido nas informações do cabeçalho. Também verifiquei o índice HTTP_X_REAL_IP. Também é definido com o endereço IP do google.Finalmente encontrei o IP correto no
HTTP_FORWARDED
valor do índice comofor=203.192.231.124
echo $_SERVER['HTTP_FORWARDED']
Então, basta remover o texto
for=
do valor e você obterá o IP.$ip = str_replace('for=','', $_SERVER['HTTP_FORWARDED']);
fonte