::ffff:
est un préfixe de sous-réseau pour les adresses IPv4 (32 bits) placées dans un espace IPv6 (128 bits). IPv6 est divisé en deux parties, le préfixe de sous-réseau et le suffixe d'interface. Chacun a une longueur de 64 bits, soit 4 groupes de 4 caractères hexadécimaux.
Dans IPv6, vous êtes autorisé à supprimer les zéros non significatifs, puis à supprimer les zéros consécutifs, ce ::ffff:
qui signifie en fait que 0000:0000:ffff:0000
cette adresse a été désignée comme le préfixe de sous-réseau IPv4 à IPv6, de sorte que tout processeur IPv6 comprendra qu'il fonctionne avec une adresse IPv4 et la traitera en conséquence.
Dans un proche avenir, les adresses IP seront toutes IPv6, c'est parce que nous sommes presque à court de chiffres (4,2 milliards, moins un peu d'espace à des fins diverses) dans l'espace d'adressage IPv4.
IPv6 permet un espace beaucoup plus grand. "340 undecillions devraient suffire à n'importe qui" - Bill Gates s'exprimant sur IPv6.
Il est important de commencer à adresser les adresses IP en utilisant l'espace de noms IPv6 et donc d'inclure le ::ffff:
dans votre code car à l'avenir, il y aura de vraies données hexadécimales entre ces deux points. Si vous le supprimez pour des raisons esthétiques, votre code se cassera lorsqu'il basculera sur un réseau IPv6 ou sera confronté à une adresse IPv6.
Certains réseaux utilisent actuellement IPv6 et vous serez bientôt confronté à des adresses IP IPv6; faites le saut maintenant ou risquez de casser votre code à l'avenir.
La version TL; DR (courte) du problème est la suivante: tout fonctionne correctement. Ne le changez pas, c'est la version IPv6 d'une adresse IPv4.
Si vous souhaitez rendre votre code compatible avec IPv6, il vous suffit de vérifier le ::ffff:
préfixe ... s'il existe, supprimez-le et traitez le reste comme IPv4 ... s'il ::ffff:
n'existe pas, c'est une adresse IPv6 et doit être traité comme tel. Vous pouvez revérifier en voyant si les points sont dans la chaîne, si c'est le cas, c'est IPv4.
Gardez à l'esprit que pour tout sauf les ajustements que vous devez apporter aux adresses IP, vous enregistrez simplement l'adresse IP, non? Il sera important pour l'analyseur et les agrégats de journaux de s'attendre ::ffff:127.0.0.1
à l'avenir. À moins que vous n'ayez besoin de modifier une adresse IP, laissez-la comme ce que vous recevez.
req.ip
oureq.ips
?