Jump to content
richard nicson

Problema para pegar Ip do Usuário

Recommended Posts

Boa noite,recentemente contratei um cloud para meu sistema na Empresa Cloud Ways porém possuo um código na parte de cadastro,que pega o ip do usuário que deseja se cadastrar e insere no banco de dados o IP.

Eu usava o REMOTE_ADDR e funcionava perfeitamente na antiga empresa de hospedagem.

Mas no cloud ele insere o ip 127.0.0.1 no lugar,tentei inserir o código para Cloud Flare achando que fosse isso,mas começou a não inserir mais nada.

 

Alguém poderia me auxiliar?

 

Agradeço desde já.

Share this post


Link to post
Share on other sites
function get_client_ip() {
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP'))
        $ipaddress = getenv('HTTP_CLIENT_IP');
    else if(getenv('HTTP_X_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    else if(getenv('HTTP_X_FORWARDED'))
        $ipaddress = getenv('HTTP_X_FORWARDED');
    else if(getenv('HTTP_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_FORWARDED_FOR');
    else if(getenv('HTTP_FORWARDED'))
       $ipaddress = getenv('HTTP_FORWARDED');
    else if(getenv('REMOTE_ADDR'))
        $ipaddress = getenv('REMOTE_ADDR');
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}

obtido em:

https://stackoverflow.com/questions/15699101/get-the-client-ip-address-using-php

Share this post


Link to post
Share on other sites
8 horas atrás, quimera disse:

function get_client_ip() {
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP'))
        $ipaddress = getenv('HTTP_CLIENT_IP');
    else if(getenv('HTTP_X_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    else if(getenv('HTTP_X_FORWARDED'))
        $ipaddress = getenv('HTTP_X_FORWARDED');
    else if(getenv('HTTP_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_FORWARDED_FOR');
    else if(getenv('HTTP_FORWARDED'))
       $ipaddress = getenv('HTTP_FORWARDED');
    else if(getenv('REMOTE_ADDR'))
        $ipaddress = getenv('REMOTE_ADDR');
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}

obtido em:

https://stackoverflow.com/questions/15699101/get-the-client-ip-address-using-php

Bom dia Quimera,muito obrigado esse código funcionou porém ele está inserindo dessa forma: "IPCORRETO, 127.0.0.1"

 

Onde deveria ser apenas "ipcorreto".

Share this post


Link to post
Share on other sites
Em 01/09/2017 at 07:52, gabrieldarezzo disse:

Contata o suporte dos caras, quem sabe não é um problema comum/conhecido.

 

Muito obrigado por sua resposta,entrei em contato com o suporte deles e me auxiliaram a trocar a $ip para:

 

$ip = $_SERVER['HTTP_X_REAL_IP'];

 

E isso funcionou normalmente.

 

Obrigado a todos por tentarem ajudar.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Dark_Trap000
      Ola, eu tenho um problema ao salvar ips permitidos no MySQL
      segue o codigo de salvamento
      <?php session_start(); include "conexao.php"; if (empty($_SESSION['usuario'])) { header('Location: login.php'); exit(); } $ip = $_SESSION['ip']; echo $pegar_ip = $_SERVER["REMOTE_ADDR"]; if($ip == $pegar_ip) { echo "IP Autorizado!!!"; } else if($ip == 0) { $pegar_ip = $_SERVER["REMOTE_ADDR"]; echo "IP Não Registrado!!!"; $sql = "UPDATE usuario SET creditos = $salvar WHERE usuario_id = $id"; die(); } ?> ele chega á estar tudo certo, + o problema e salvar no mysql. qual o problema ?
    • By WEBCHARLES
      Blz galera, estou com uma grande dificuldade com JAVASCRIPT, estou tendo problema com meu PHP para retornar o IP com função $_SERVER['REMOTE_ADDR']; mas esta, me retorna apenas o gateway da nossa rede, acreditamos que seja algum problema interno. Daí recorri ao javascript abaixo, que está me retornando o ip publico e para mim, já ajuda bastante. 
      O que eu gostaria é o seguinte, a partir desse ip que está sendo mostrado pelo javascript, fazer um alert redirecionando se os 10 primeiros algarismos forem diferentes de 200.254.21 sair da pagina.
       
      Não sei trabalhar com if no javascript. Alguém pode me ajudar?
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script> <script type="application/javascript"> $(function() { $.getJSON("https://api.ipify.org?format=jsonp&callback=?", function(json) { document.write("Meu IP público é: ", json.ip); } ); }); </script>
    • By WEBCHARLES
      beleza galera,
      estou tendo um problema ao pegar o iP da maquina, quando uso a função echo $_SERVER['REMOTE_ADDR']; está me retornando o getway e não o IP porque isso está ocorrendo?
    • By Inside
      Olá amigos,
       
      Achei esse tutorial http://www.macoratti.net/asp_geoip.htm antigo sobre identificar IP com GeoIP.dat.
       
      Mas GeoIP.dat não existe mais agora é o GeoLite2-Country.mmdb (https://dev.maxmind.com/geoip/geoip2/geolite2)
       
      O tutorial do Marcoratti não funciona com GeoLite2-Country.mmdb.
       
      Alguém poderia ajudar para atualizar o código? Procurei por tutoriais na web mas não achei nenhum atualizado.
       
      Testei esse ai na Locaweb e não funcionou.
       
      Creio que será muito útil a todos, obrigado pela atenção de todos.
    • By soaresra
      Olá colegas, eu venho avançando a cada dia na programação em PHP mas eu travei em uma estrutura e queria a ajuda dos colegas mais experientes.
       
      Eu tenho 3 tabelas:
      Adm_Funcionarios_Usuarios - contem login e senha
      # login,  senha
          jose,  1234
       
      Sis_Setores: aonde tem os nomes dos módulos e os links dele. Ex. Administrativo, Financeiro, etc.
      # linkNome          link
      administrativo     administrativo.php
      financeiro             financeiro.php
      vendas                  vendas.php
       
      Adm_Funcionarios_Usuarios_Acessos - contem login e módulos
      # login,  autorizados
           jose,  administrativo, financeiro
       
      Hoje eu só uso o menu carregando todas as opções
      $sql = "SELECT * FROM Sis_Setores WHERE linkNome = '$Sistema' AND situacao = 1;"; $return = mysqli_query($conexao, $sql) or trigger_error(" Query falhou! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR); while($LinhaMenu = mysqli_fetch_assoc($return)) { echo '<a href="'.$LinhaMenu["link"].'" target="_self">'.$LinhaMenu["linkNome"]."</a>"; } O que eu estou tentando fazer é: (levando em consideração que eu já tenha as informações do usuário logado)
       
      1 - Verifica quem é a pessoa logada / Já tenho isso pronto
      2 - Verifica se a pessoa logada existe na tabela Adm_Funcionarios_Usuarios_Acessos no campo login / Já tenho isso pronto
       
      Não estou conseguindo fazer
       
      3 - Verifica na tabela Adm_Funcionarios_Usuarios_Acessos o campo autorizados os módulos que serão carregados
      4 - Percorre a array com os valores, exemplo: administrativo, vendas
      5 - Se existe na array a palavra administrativo que também existe no campo linkNome da tabela Sis_Setores
      6 - Carrega no menu apenas os links que existem dentro da array.
       
      O que eu tentei fazer sem sucesso (coisas de café com leite):
       
      $sql = "SELECT autorizados FROM Adm_Funcionarios_Usuarios_Acessos WHERE iduser = 1;"; $return = mysqli_query($conexao, $sql) or die(mysqli_error($conexao)); if(!$result = mysqli_fetch_array($return)) { echo "Deu Ruim no SQL dos Acessos"; } else { $autorizados = $result["autorizados"]; //echo $autorizados; foreach($autorizados as $valor) { $sql = "SELECT * FROM Sis_Setores WHERE linkNome = '$autorizados' AND situacao = 1;"; $return = mysqli_query($conexao, $sql) or trigger_error(" Query falhou! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR); while($LinhaMenu = mysqli_fetch_assoc($LinksSubSistema)) { echo '<a href="'.$LinhaMenu["link"].'" target="_self">'.$LinhaMenu["linkNome"]."</a>".$br; } } } O erro que dá é 
      Warning: Invalid argument supplied for foreach() in testeArray.php on line 50 //Linha 50 -> foreach($autorizados as $valor)
       
      Agradeço desde já aos colegas.
       
       
       
       
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.