Ir para conteúdo
Fórum Script Brasil
  • 0

IPV4 somente com PHP com link ipv4/ipv6


RpgBoss

Pergunta

Eu sempre usei $_SERVER['REMOTE_ADDR'] para obter o IP do usuário/visitante em alguns sistemas. Porém comecei a usar um IP FIXO no trabalho, que é IPV4, mas quando vou ver o registro eu acessei com IPV6.

 

Mas em sites como fóruns e blogs os sistemas em PHP deles registram o IPV4, e analisei os códigos e mesmo assim não consegui entender o algorítimo que consegue passar o IPV6 ou outro método para IPV4.

 

Então acredito que seja possível somente com PHP, se alguém puder me ajudar.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Eu consegui descobrir a razão de alguns sites pegarem o IPV4 mesmo usando IPV6 ao mesmo tempo e a minha hospedagem não, as rotas usadas podem variar do servidor onde foi hospedado a script PHP, então não tem realmente como isso ser feito sem uso de serviço de terceiros.

Agora uma solução alternativa, vale lembrar que não vou postar o serviço de terceiros que usei por que acredito que isso seja mal visto pela comunidade, e que também pode ser considerado um sistema mal feito.

Para poder solucionar eu usei este serviço para converter em JSON o IPV4:

http://<ipv4 ipv6 service>/json/widgetdata.php?callback=_jqjsp&_1518034744039=

Ele retorna uma JSON:

_jqjsp({"address":"XXX.XXX.XXX.XXX","proto":"ipv4","country_code":"BR","country":"Brazil"})

Mas não se pode usar xmlHTTPrequest para receber valores de outra um JSON de outra hospedagem, então através da URL dela eu alterei o termo da variavel **callback** de maneira que a gambiarra fazendo com que o PHP do serviço criasse uma variavel Javascript:

http://<ipv4 ipv6 service>/json/widgetdata.php?callback=dataipv4=

E chamando ele por HTML a variavel fica acessivel ao seu navegador como um objeto JSON:

dataipv4=({"address":"XXX.XXX.XXX.XXX","proto":"ipv4","country_code":"BR","country":"Brazil"})

Então agora sim com xmlHTTPRequest bastou usar a variavel dataipv4.address para obter o IP e enviar por método GET pra um PHP que use o IP:

function showIpv(ip) {
     var xmlhttp = new XMLHttpRequest();
     xmlhttp.onreadystatechange = function() {
         if (this.readyState == 4 && this.status == 200) {
             console.log()
         }
     };
     xmlhttp.open("GET", "write_ipv4.php?ip="+ip, true);
     xmlhttp.send();
}

O arquivo write_ipv4.php que fica na hospedagem:

<?php
if(isset($_GET['ip']) && !empty($_GET['ip'])){
   /* User a variavel global $_GET['ip'] da maneira que preferir
      Por exemplo:
      echo $_GET['ip']
      retorna o IP no formato XXX.XXX.XXX.XXX
   */
}else{
   console.log('Acesso direto proibido');
}
?>

 

Editado por RpgBoss
Remover IP por questão de segurança
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...