¿Es seguro asumir que $_SERVER['REMOTE_ADDR']
siempre devuelve dirección IPv4?REMOTE_ADDR e IPv6 en PHP
Gracias!
¿Es seguro asumir que $_SERVER['REMOTE_ADDR']
siempre devuelve dirección IPv4?REMOTE_ADDR e IPv6 en PHP
Gracias!
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
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.
Es bueno saber, probablemente algún error Apache, ¿no? –
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. –
+1, Gracias! Voy a intentar descubrir cómo puedo convertir una dirección IPv6 en un número. –
http://php.net/manual/en/function.inet-pton.php convertirá las direcciones de "cadena" v4 y v6 a su representación empaquetada. –
@Michael IPv6 tiene muchas representaciones de texto. ¿Hay una representación estándar devuelta por '$ _SERVER ['REMOTE_ADDR']'? – Pacerier