Project

General

Profile

Požadavek #193

IPv6 support

Added by Tomáš Dulík over 8 years ago. Updated over 6 years ago.

Status:
Nový
Priority:
Normální
Assignee:
-
Category:
Evidence sítě
Target version:
Start date:
07/10/2012
Due date:
% Done:

0%

Estimated time:

Description

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..

#1

Updated by Ondřej Fibich about 8 years ago

  • Target version changed from 1.1 to 1.2

Dokud nebude v debianu MySQL 5.6, je to asi bezpředmětné. Proto přesunuju do v. 1.2.

#2

Updated by Ondřej Fibich about 7 years ago

  • Category set to Evidence sítě
#3

Updated by Ondřej Fibich over 6 years ago

  • Target version changed from 1.2 to 1.3

Also available in: Atom PDF