::ffff:jest prefiksem podsieci dla adresów IPv4 (32-bitowych) umieszczonych w przestrzeni IPv6 (128-bitowej). IPv6 jest podzielony na dwie części: prefiks podsieci i sufiks interfejsu. Każdy z nich ma 64 bity lub 4 grupy po 4 znaki szesnastkowe.
W IPv6 możesz usunąć wiodące zera, a następnie usunąć kolejne zera, co oznacza, że w ::ffff:rzeczywistości oznacza to 0000:0000:ffff:0000, że ten adres został wyznaczony jako prefiks podsieci IPv4 do IPv6, więc każdy procesor IPv6 zrozumie, że działa z adresem IPv4 i obsłuży go odpowiednio.
W najbliższej przyszłości wszystkie adresy IP będą w formacie IPv6, ponieważ w przestrzeni adresowej IPv4 prawie zabrakło (4,2 miliarda, minus trochę miejsca na różne cele).
IPv6 pozwala na znacznie większą przestrzeń. „340 undecillionów powinno wystarczyć każdemu” - mówi Bill Gates o IPv6.
Ważne jest, aby rozpocząć adresowanie adresów IP przy użyciu przestrzeni nazw IPv6, a zatem uwzględnić ::ffff:w kodzie znak, ponieważ w przyszłości między tymi dwukropkami będą znajdować się prawdziwe dane szesnastkowe. Jeśli zdejmiesz go ze względów estetycznych, kod zepsuje się, gdy przełączy się na sieć IPv6 lub zostanie skonfrontowany z adresem IPv6.
W niektórych sieciach obecnie działa protokół IPv6 i wkrótce będziesz miał do czynienia z adresami IPv6; zrób krok teraz lub zaryzykuj złamanie kodu w przyszłości.
TL; DR (krótka) wersja sprawy brzmi: Wszystko działa dobrze. Nie zmieniaj tego, to wersja IPv6 adresu IPv4.

Jeśli chcesz, aby Twój kod był zgodny z IPv6, wszystko, co musisz zrobić, to sprawdzić ::ffff:prefiks ... jeśli istnieje, usunąć go i przetworzyć pozostałą część jako IPv4 ... jeśli ::ffff:nie istnieje, jest to adres IPv6 i muszą być przetwarzane jako takie. Możesz sprawdzić dwukrotnie, sprawdzając, czy w ciągu znaków znajdują się kropki, jeśli tak, to jest to IPv4.
Miej na uwadze wszystko oprócz zmian, które musisz wprowadzić w adresach IP, po prostu rejestrujesz adres IP, prawda? Będzie to ważne dla parsera i agregatów logów, których można się spodziewać ::ffff:127.0.0.1i takich w przyszłości. O ile nie musisz zmieniać adresu IP, po prostu zostaw je tak, jak otrzymujesz.
req.iplubreq.ips?