::ffff:
es un prefijo de subred para direcciones IPv4 (32 bits) que se colocan dentro de un espacio IPv6 (128 bits). IPv6 se divide en dos partes, el prefijo de subred y el sufijo de interfaz. Cada uno tiene 64 bits de longitud o 4 grupos de 4 caracteres hexadecimales.
En IPv6, puede eliminar los ceros iniciales y luego eliminar los ceros consecutivos, lo que significa que en ::ffff:
realidad se traduce en0000:0000:ffff:0000
, esta dirección ha sido designada como el prefijo de subred IPv4 a IPv6, por lo que cualquier procesador IPv6 entenderá que está funcionando con una dirección IPv4 y la manejará. en consecuencia.
En un futuro cercano, todas las direcciones IP serán IPv6, esto se debe a que estamos casi sin números (4,2 mil millones, menos algo de espacio para propósitos diversos) en el espacio de direcciones IPv4.
IPv6 permite un espacio mucho más grande. "340 mil millones deberían ser suficientes para cualquiera" - Bill Gates hablando por IPv6.
Es importante comenzar a direccionar las direcciones IP utilizando el espacio de nombres IPv6 y, por lo tanto, incluirlas ::ffff:
en su código porque en el futuro habrá datos hexadecimales reales entre esos dos puntos. Si lo quita por razones estéticas, su código se romperá cuando cambie a una red IPv6 o se enfrente a una dirección IPv6.
Algunas redes ejecutan actualmente IPv6 y pronto se enfrentará a direcciones IP IPv6; dé el salto ahora o arriesgue su código en el futuro.
La versión TL; DR (corta) del asunto es: Todo está funcionando bien. No lo cambie, es la versión IPv6 de una dirección IPv4.
Si desea que su código sea compatible con IPv6, todo lo que tiene que hacer es verificar el ::ffff:
prefijo ... si existe, eliminarlo y procesar el resto como IPv4 ... si ::ffff:
no existe, es una dirección IPv6 y necesita ser procesado como tal. Puede verificar si hay puntos en la cadena, si es así, es IPv4.
Tenga en cuenta que para todo menos los ajustes que necesita hacer en las direcciones IP, solo está grabando la IP, ¿verdad? Será importante para el analizador y los agregados de registros esperar ::ffff:127.0.0.1
y demás en el futuro. A menos que necesite modificar una IP, déjela como lo recibe.
req.ip
oreq.ips
?