Požadavek #193
otevřenýIPv6 support
0%
Popis
Toto je k zamyšlení, když teď Ondra předělává evidenci sítě.
IPv6 má 128bit, z toho 64bit je adresa sítě (kterou vlastně máme v tabulce subnet) a 64 bit je adresa hosta (odvozena z MAC adresy nebo z DHCP).
Tzn. IPv4 i IPv6 by bylo možné implementovat v MySQL jednotně, např. pomocí sloupce typu BIGINT (64 bit).
V současné době máme IP adresy jako varchar, tzn. zabírají více místa a případné dotazy vyžadující subnet aritmetiku znamenají neustálé převody z řetězce na IP.
MySQL 5.6 už obsahuje funkce, které umí převádět IPv4 i IPv6 z řetězce do binární podoby a zpět:
http://dev.mysql.com/doc/refman/5.6/en/miscellaneous-functions.html#function_inet6-ntoa
Výsledkem není BIGINT, ale VARBINARY nebo VARBINARY.
Pro nižší verze MySQL lze buď doinstalovat UDF modul s těmito funkcemi:
http://labs.watchmouse.com/2009/10/extending-mysql-5-with-ipv6-functions/
nebo ty funkce implementovat jako SQL procedury. Pro IPv4 kdysi takové procedury ve Freenetis-u byly, protože u inet-aton() se mi nelíbilo, že pro adresy, které obsahují např. mezeru navíc nebo čárku místo tečky, nativní inet-aton vrací NULL, místo aby se převod snažil dokončit, což mě štvalo při snaze naimportovat do MySQL starou databázi v XLS.
Nebo lze využít PHP funkce
http://php.net/manual/en/function.inet-pton.php
Tož špekulujte chlapci..
Aktualizováno uživatelem Ondřej Fibich před asi 11 roky(ů)
- Cílová verze změněn z 1.1 na 1.2
Dokud nebude v debianu MySQL 5.6, je to asi bezpředmětné. Proto přesunuju do v. 1.2.
Aktualizováno uživatelem Ondřej Fibich před asi 10 roky(ů)
- Kategorie nastaven na Evidence sítě
Aktualizováno uživatelem Ondřej Fibich před více než 9 roky(ů)
- Cílová verze změněn z 1.2 na 1.3