Mas é claro que você não vai pegar o IP interno do usuário.
A função de um roteador é justamente fazer o "mascaramento" desta informação e saber para quem deve devolver o pacote quando ele retornar.
Quando se fala em IP do cliente, me parece obvio que estamos falando do IP válido de onde a conexão originou e não do IP de determinada máquina dentro de uma rede local.

sds,

Marcello


Em 05/06/2010 10:34, Zaedy Sayão escreveu:
Não, não funciona e isso já foi altamente discutido em várias listas de PHP.

Também sei de toda essa teoria de TCP/IP, HTTP, NAT e afins. O que você consegue é pegar o ip público, o interno não. Logo, não funciona sempre.

Se o servidor está na mesma rede 192.168.x.x, o REMOTE_ADDR de $_SERVER resolve, caso contrário, se a conexão for via NAT, não tem como.
Se a sua conexão com o servidor é sobre NAT (digamos vc numa rede local, acessa um servidor na internet), não tem como pegar.
Com applet você consegue, mas com php direto não.
Se for IP interno não tem como. Mesma coisa se tentar pegar o MAC do visitante.

Em VOIP, por exemplo, NAT é um problema. No caso de VOIP, especificamente, você consegue pegar o ip público e o interno, devido as protocolos. Mas o php direto não te dá essa informação.

[]'s

2010/6/5 Marcello Fontolan <marce...@fontolan.com.br>
Desculpe pela informação incompleta...

Em 05/06/2010 01:11, Marco Catunda escreveu:

Sim funciona. Só para esclarecer que o REMOTE_ADDR não tem nada a ver
com IP de origem do pacote TCP, por isso que funciona. O REMOTE_ADDR é
uma variável do protocolo HTTP e o pacote HTTP é montado no cliente. Por
isso que o REMOTE_ADDR se mantém, ao longo de todos os NATs. No cabeçalho
do pacote TCP o IP de origem deve ser alterado em cada NAT para que o roteamento
de volta do pacote (resposta) possa funcionar.

On 05/06/2010, at 00:50, marce...@fontolan.com.br wrote:

 
Não quero criar uma discussão, mas funciona sim... a informação do IP de
origem é mantido no pacote TCP/IP e chega ao servidor, mesmo passando por
NAT, como um modem ADSL com NAT, por exemplo.
Tenho isto funcionando em alguns ambientes e, dentro deles, mais de um
ADSL residencial com NAT inclusive traduzindo a porta externa 8080 para
interna 80 pois a operadora bloqueia a 80.
Em um caso especifico, NAT sobre outro NAT.

sds,

Marcello

   
Se passar por NAT, por exemplo, não funciona.

[]'s

2010/6/4 Marcello Fontolan<marce...@fontolan.com.br>

     
Em PHP, a variável "$_SERVER['REMOTE_ADDR']" contem o IP do cliente, assim
como "$_SERVER['HTTP_USER_AGENT']" contem o navegador que ele está usando.

sds

Marcello
       


--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
   
 

--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev



--
Zaedy Dantas Sayão
Graduando em Ciência da Computação DCC/UFRJ
http://www.manufato.com.br/
MSN: zaedy_z...@hotmail.com
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a