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 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.
       
       
       
       
       
       
       
    • By Vinicius-Visanfe
      Ola tenho esses arquivos.
       
      // Esse arquivo usuarios.php tem a conexao e a parte de login e cadastro.
      ?php   class Usuario{   private $pdo;   //Construtor public function __construct($dbname, $host, $username, $password){ try { $this->pdo = new PDO("mysql:dbname=".$dbname.";host=".$host, $username, $password); } catch (PDOException $e) { echo "Erro com BD: ".$e->getMessage(); }catch (Exception $e) { echo "Erro: ".$e->getMessage(); } }   //Cadastrar public function cadastrar($nome, $telefone, $email, $cpf, $bairro, $cidade, $senha){   //Antes de cadastrar verificar se ja esta cadastrado $cmd = $this->pdo->prepare("SELECT id from usuarios WHERE email = :e"); $cmd->bindValue(":e",$email); $cmd->execute(); if($cmd->rowCount() > 0) //Veio id { return false; }else // Não veio id { //Cadastrar $cmd = $this->pdo->prepare("INSERT INTO usuarios (nome, telefone, email, cpf, bairro, cidade, senha) values (:n, :t, :e, :c, :b, :d, :s)"); $cmd->bindValue(":n",$nome); $cmd->bindValue(":t",$telefone); $cmd->bindValue(":e",$email); $cmd->bindValue(":c",$cpf); $cmd->bindValue(":b",$bairro); $cmd->bindValue(":d",$cidade); $cmd->bindValue(":s",md5($senha)); $cmd->execute(); return true; }     }   //Logar public function entrar($email, $senha) { $cmd = $this->pdo->prepare("SELECT * from usuarios WHERE email = :e AND senha = :s"); $cmd->bindValue(":e",$email); $cmd->bindValue(":s",md5($senha)); $cmd->execute(); if($cmd->rowCount() > 0) //Se foi encontrado essa pessoa { $dados = $cmd->fetch();   if($dados['id'] == 1) { //Usuario ADM $_SESSION['id_master'] = 1; }else{ //Usuario Normal $_SESSION['id_usuario'] = $dados['id']; } return true; //Usuário encontrado }else{ return false; //Usuário não foi encontrado } }   } ?>   // Ja esse arquivo meu-perfil.php seria o Perfil de usuario   html lang="pt-br"> <head> <title>Meu perfil - Pé na Estrada</title>   <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="../css/style.css"> <link rel="stylesheet" href="../css/perfil.css">     <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">   </head> <body> <header class="cabecalho"> <div class="container"> <div class="caixa-cabecalho"> <h1 class="logo"><img class="logo-pe" src="../images/logotipo-pne.png" width="50%"></h1> <button class="btn-menus"><a class="btns">Cadastrar <i class="fas fa-home"></i></button> <button class="btn-menul"><a class="btnl" href="">Sair <i class="fas fa-sign-out-alt"></i></i></a></button> </div> </div> </header> <main> <div class="container"> <div class="caixa-conteudo">   </div> </div> </main> <footer class="rodape"> <div class="container"> <div class="caixa-rodape"> <p class="titulo-rodape">Sobre</p><br> <a href="#" class="texto-rodape">Inicio</a> <a href="#" class="texto-rodape">Termos de Uso</a> <a href="#" class="texto-rodape">Pontos Turisticos</a> <a href="#" class="texto-rodape">Contato</a> </div> <div class="caixa-rodape" id="fale"> <p class="titulo-rodape">Fale Conosco</p><br> <p class="texto-rodape">(11) 98020-1329</p> <p class="texto-rodape">marketing@penaestrada.net.br</p> <P class="texto-rodape">contato@penaestrada.net.br</P> </div> <div class="caixa-links" id="redes"> <p class="titulo-rodape">Acesse nossos canais</p><br> <p class="texto-links"><i id="face" class="fab fa-facebook-f"></i> <i id="insta" class="fab fa-instagram"></i> <i id="twit" class="fab fa-twitter"></i> <i id="you" class="fab fa-youtube"></i></p> </div> <div class="caixa-rodape"> <p class="texto-rodape2">PAÚBA Criativa</p> </div> <div class="caixa-rodape"> <p class="texto-rodape2"> <i class="fas fa-credit-card" id="card"></i> Crédito/Débito <i class="fas fa-file-invoice-dollar" id="boleto"></i> Boleto </p> </div> <div class="caixa-rodape"> <p class="texto-rodape2"> Segurança <i class="fas fa-shield-alt" id="seguranca"></i> </p> </div> </div> <div class="caixa-reservados"> <p class="texto-reservados">PÉ NA ESTRADA © 2019 - Todos os direitos reservados</p> </div> </footer>   <!--Modal de Sign In--> <style> .modal-container{ width: 100vw; height: 100vh; background: rgba(0,0,0,.5); position: fixed; top: 0; left: 0; z-index: 2000; display: none; justify-content: center; align-items: center; } .modal-container.mostrar{ display: flex; } .modal{ background: #ffffff; width: 25%; min-width: 250px; padding: 20px; position: relative; border-radius: 8px; }   @keyframes modal{ from{ opacity: 0; transform: translate3d(0, -60px, 0); } to{ opacity: 1; transform: translate3d(0, 0, 0); } }   .mostrar.modal{ animation: modal .3s; }   .fechar{ position: absolute; font-size: 1.2em; top: -25px; right: -20px; width: 40px; height: 50px; border-radius: 50%; border: 2px solid #ffffff; background-color: #011936; color: #ffffff; cursor: pointer; box-shadow: 0 4px 4px 0 rgba(0, 0, 0, .3); } .title{ font-weight: bold; color: #011936; } .form-sign{ display: grid; } .cx-form{ height: 40px; margin-top: 5px; border: 1px solid #a8dbff; border-radius: 7px; }   .cx-btn{ margin-top: 5px; width: 40%; height: 40px; background-color: #a8dbff; border: 1px solid #a8dbff; color: #011936; font-weight: bold; border-radius: 7px; }   </style> <div id="modal-signin" class="modal-container"> <div class="modal"> <button class="fechar"><i class="fas fa-times"></i></button> <h3 class="title">Cadastrar Propriedade</h3> <form class="form-sign" action="" method="post" enctype="multipart/forma-data"> <input class="cx-form" type="text" name="titulo" id="titulo" placeholder=" Titulo" maxlength="255" required> <input class="cx-form" type="text" name="endereco" id="endereco" placeholder=" Endereço" maxlength="255" required> <input class="cx-form" type="text" name="cep" id="cep" placeholder="CEP" maxlength="20" required> <input class="cx-form" type="text" name="bairro" id="bairro" placeholder=" Bairro" maxlength="60" required> <input class="cx-form" type="text" name="cidade" id="cidade" placeholder=" Cidade" maxlength="60" required> <input class="cx-form" type="text" name="estado" id="estado" placeholder=" Estado" maxlength="2" required> <input class="cx-form" type="text" name="info" id="info" placeholder=" informações" maxlength="600" required> <input class="cx-upload" type="file" name="images" id="images"> <input class="cx-btn" type="submit" value="CADASTRAR"> </form> </div> </div>   <script> function iniciaModal(modalId){ const modal = document.getElementById(modalId); if(modal) { modal.classList.add('mostrar'); modal.addEventListener('click', (e) => { if(e.target.id == modalId || e.target.className == 'fechar' || e.target.className == 'fas fa-times') { modal.classList.remove('mostrar'); } }); } }   const btn = document.querySelector('.btn-menus'); btn.addEventListener('click', () => iniciaModal('modal-signin'));   </script> </body> </html>   <!--PHP -->   <?php   if(isset($_POST['titulo'])){ $titulo = htmlentities(addslashes($_POST['titulo'])); $endereco = htmlentities(addslashes($_POST['endereco'])); $cep = htmlentities(addslashes($_POST['cep'])); $bairro = htmlentities(addslashes($_POST['bairro'])); $cidade = htmlentities(addslashes($_POST['cidade'])); $estado = htmlentities(addslashes($_POST['estado'])); $info = htmlentities(addslashes($_POST['info'])); $images = htmlentities(addslashes($_POST['images']));   if(!empty($titulo) && !empty($endereco) && !empty($cep) && !empty($bairro) && !empty($cidade) && !empty($estado) && !empty($info) && !empty($images)) { require_once '../classes/propriedades.php'; $us = new PDO("mysql:dbname=navarro7_usuarios;host=localhost", "navarro70", "Navarro0");   } } ?>   // E tenho esse código PHP na página login.php com campos de email e senha.   <?php     if(isset($_POST['email'])){   $email = htmlentities(addslashes($_POST['email'])); $senha = htmlentities(addslashes($_POST['senha'])); if(!empty($email) && !empty($senha)){ require_once 'classes/usuarios.php'; $us = new Usuario("navarro7_usuarios", "localhost", "navarro70", "Navarro0"); if($us->entrar($email, $senha)){ echo '<script>window.location.href = "/pages-adm/meu-perfil.php"</script>'; }else{ echo "Email e/ou senha estão incorretos!"; } }else{ echo "Preencha todos os campos!"; }   }   ?>  
      Alguém pode me ajudar nesse caso quero que quando o usuario usa a pagina login colocando o email e senha ela vai para a pagina meu-perfil.php mais que eu consiga fazer aparecer o nome dele na pagina.
       
    • By Felipe_N22
      Gostaria de saber como faço para habilitar os serviços do tomcat para eu conseguir obter acesso via ip. O tomcat disponibiliza três opções, sendo elas server status, manager app e host manager. Eu consigo ter acesso a essas configurações somente via localhost:8080, mas quando eu tento através do meu ip x.x.x.x:8080 ele mostra que os serviços não estão disponíveis.
       
      Segue simulação, eu tentei acessar o menu "Server Status".
       
      Através do localhost:
       

       
      Através do IP:
       

       
       
       
    • By MAKAVELIQUE
      Imagine a seguinte situação, coloco no meu site um link assim:  www.getip.com?busca_IP=201.76.1.238,  alguém conhece algum site que eu possa passar o valor do ip via get?
    • By Rodrigo Vieira E da Silva
      Olá a todos do fórum Imasters, tudo bem?
      Minha dúvida é a seguinte:
      Eu tenho alguns páginas que desejo restringir o acesso e quero que somente os assinantes e o administrador possam ver essas páginas.
      Gostaria de fazer isso via código sem a necessidade de ter plugins em meu projeto. Alguém já fez isso ou conhece alguém que possa me ajudar.
      Fico no aguardo de um feedback, referente ao assunto acima.
×

Important Information

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