Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ipv6 a przechowywanie w mysql
reyder
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


Witam. Jako, że myślę przyszłościowo to zastanawiam się nad ipv6 i napotkałem dość poważny problem. Mianowicie zastanawiam się jak przechowywać ipv6 w tabeli mysql. Zastanawiałem się nad 2-bigint, wtedy ipv6 zajmowało by drugą kolumnę biginta i łatwo było by rozróżnić jakie ip ma użytkownik, ale po dłuższym zastanowieniu jest to bardzo nie wygodne rozwiązanie. Drugi pomysł to przechowywanie w varchear, to chyba nie zbyt wydajny sposób, a trzeci to przechowywanie w postaci binarnej. Według mnie to najlepsze rozwiązanie. Zawadza mi tylko jeszcze jeden problem, że połowa adresów będzie ipv4 a druga połowa ipv6. Nie da się przekonwertować ipv4 użytkownika na wersje ipv6 i dopiero uaktualniać w bazie danych ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ależ da się konwerować. Adresy ipv4 można przetworzyć do ipv6 poprzez dołożenie do niego wzorca.
ipv6 jest 128-bitowe o postaci 8 bloków 16-bitowych lub 4 bloków 32-bitowych (a więc można go zapisać jako 4-krotność starego ipv4)
ipv4 jest 32-bitowe o postaci 4 bloków 8-bitowych
Wzorzec pozwalający na to aby ipv4 było identyfikowane przez ipv6 to ::ffff:(ipv4), a więc

(ipv6) = 0.0.0.0 : 0.0.0.0 : 0.0.255.255 : (ipv4)

I tak też rób... ipv4 zapisuj z takim dodatkiem a urządzenia ipv6 także go rozpoznają. Od biedy nawet jeśli rozpoznasz ów wzorzec, to będziesz wiedział, że masz to czynienia z ipv4 ukrytym jako ipv6.

W bazie możesz to od biedy zapisać jako jako złożenie kilku bloków. Przypuśćmy 3 kolumny gdzie domyślnie są: 0, 0, inet_aton(0.0.255.255) i jedna przechowująca adres jako ipv4 też w inet_aton. Dzięki temu łatwo odseparujesz po 3 kolumnie co jest, a co nie jest ipv6. Ipv4 będzie zawsze identyczna (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 18:37