PHP é à quinta-feira – Endereço IPv4 ou IPv6?

PHP é à quinta-feira – Endereço IPv4 ou IPv6?

Criado por Pedro Pinto em 17 de Março de 2011 | 11 comentários

De volta à rubrica “PHP é à quinta-feira“, esperamos que os utilizadores contribuam com sugestões e estamos abertos para receber os vossos artigos , para posteriormente publicação, sobre esta super linguagem de scripting “server-side”.

Pois bem, ontem em conversa com um amigo ele questionava-me como colocar no seu site, a indicação se o cliente estava aceder via IPv4 ou IPv6. Vamos ver como fazer um pequeno script php para esta questão.

php_00

Como já referimos em vários artigos, o IPv6 é a nova versão do protocolo IP, e foi desenvolvido para suceder à actual versão (o IPv4). O que motivou o desenvolvimento desta nova versão foi a aproximação da exaustão do espaço de endereçamento e a necessidade de resolver algumas das limitações do IPv4, nomeadamente no que toca a segurança e mobilidade, e simplificar algumas das funcionalidades do protocolo IPv4.

Exemplo de um endereço IPv4 e IPv6

Endereço IPv4: 192.168.10.1

Endereço IPv6: 2000:490:23d0:6700:f82d:b871:ecb8:fbce

Como podemos ver, um endereço IPv6 tem uma representação hexadecimal de blocos de 16 bits, separados por dois pontos ‘:’, por exemplo:

x:x:x:x:x:x:x:x onde os “x” são números hexadecimais

Script em PHP para indicar se o cliente está aceder ao site com um endereço IPv4 ou IPv6.

Considerando que pretendemos apenas saber se o cliente está a aceder via IPv4 ou IPv6, basta apenas verificar o endereço IP do cliente é separado por ponto ‘.’ (IPv4) ou por ‘:’ (IPv6). Coisa simples não é?

ipv4_ipv6

Para a produção do script precisamos de 2 funções essenciais:

  • $_SERVER[‘REMOTE_ADDR’]; – que me permite obter o endereço do cliente
  • strstr – Encontra a primeira ocorrência de uma string (neste caso os dois pontos ‘:’

Script completo

<?php
 $ip=$_SERVER['REMOTE_ADDR'];
 if (strstr($ip, ":")) {
 echo "O seu endereço IPv6 é o: $ip";
 } else {
 echo "O seu endereço IPv4 é o: $ip";
 }   ?>

O script é relativamente simples e pode servir de base para serviços/páginas engraçadas. Lembram-se daqueles sites em que existia uma tartaruga que dançava quando o utilizador tinha um IPv6 (ver aqui)? Ou o bebé que chorava quando o IP do cliente ainda era IPv4? Através do script disponibilizado é simples fazer páginas desse tipo. Basta apenas incluir por exemplo um gif (ex. tartaruga parada) se o  cliente tiver um endereço IPv4 ou um gif animado se o cliente tiver um endereço IPv6.

Ficamos à espera que nos mostrem as vossas ideia :) . Boas programações! Alguém quer ajudar nesta rubrica?

Artigos relacionados

Download: script_ipv4_v6

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s