2010-04-12 20 views

Respuesta

25

La clave REMOTE_ADDR la establece el servidor web, no PHP. Si el servidor Web escucha V6 y el usuario se conecta de esa manera, va a ser una dirección v6

+0

+1, Gracias! Voy a intentar descubrir cómo puedo convertir una dirección IPv6 en un número. –

+3

http://php.net/manual/en/function.inet-pton.php convertirá las direcciones de "cadena" v4 y v6 a su representación empaquetada. –

+0

@Michael IPv6 tiene muchas representaciones de texto. ¿Hay una representación estándar devuelta por '$ _SERVER ['REMOTE_ADDR']'? – Pacerier

1

he visto una dirección IP mal informado a php en REMOTE_ADDR de Apache 2.

Era '183.60. .244.37 '.

Así que la respuesta a su pregunta, "¿Es seguro asumir ...?", Creo que es definitivamente no, REMOTE_ADDR no se puede confiar.

Por lo que sé, se informa a PHP desde el servidor, en mi caso Apache. Por qué fue malo, todavía estoy intentando descubrirlo. Yo se esto Llegó como parte de un lote de solicitudes de ataque. A veces era 183.60.244.37 y otras veces era 183.60..244.37.

Véase también this.

+0

Es bueno saber, probablemente algún error Apache, ¿no? –

+0

Un desarrollador de php me acaba de decir que REMOTE_ADDR proviene de cgi y de la conexión tcp del servidor, y no de http. Pero todavía estoy trabajando para encontrar cómo el servidor podría informar esto a php, si eso es lo que está sucediendo. –