8.8. Types d'adresses r�seau

PostgreSQL offre des types de donn�es pour stocker des adresses IPv4, IPv6 et MAC, d�crites dans Tableau 8-17 Il est pr�f�rable d'utiliser ces types plut�t que des types texte standards pour stocker des adresses r�seau car ils proposent un contr�le de syntaxe lors de la saisie et plusieurs op�rations et fonctions sp�cialis�es (voir Section 9.11).

Tableau 8-17. Types d'adresses r�seau

NomTaille de stockageDescription
cidr12 or 24 octetsr�seaux IPv4 et IPv6
inet12 or 24 octets h�tes et r�seaux IPv4 et IPv6
macaddr6 bytesadresses MAC

Lors du tri d'un type inet ou cidr, Les adresses IPv4 appara�tront toujours avant les adresses IPv6, Y compris les adresses IPv4 encapsul�es, comme ::10.2.3.4 or ::ffff:10.4.3.2.

8.8.1. inet

Le type inet contient une adresse d'h�te IPv4 ou IPv6, et optionnellement l'identit� de son sous r�seau, le tout dans un seul champ. L'identit� du sous r�seau est repr�sent�e en indiquant combien de bits de l'adresse h�te constituent l'adresse r�seau (le <<�masque r�seau�>>). Si le masque r�seau est 32 et l'adresse de type IPV4, alors la valeur n'indique pas un sous r�seau, juste un h�te. En IPv6, la longueur de l'adresse est de 128 bits, si bien que 128 bits d�finissent une adresse r�seau unique. Notez que si vous ne voulez utiliser que des adresses de r�seau, il est pr�f�rable d'utiliser le type cidr plut�t que le type inet.

Le format de saisie pour ce type est address/y o� address est une adresse IPv4 ou IPv6 et y est le nombre de bits du masque r�seau. Si y est omis, alors le masque vaut 32 pour IPv4 et 128 pour IPv6, et la valeur repr�sente un h�te unique. A l'affichage, la portion /y est supprim�e si le masque r�seau indique un h�te unique.

8.8.2. cidr

Le type cidr contient une sp�cification de r�seau IPv4 ou IPv6. L'entr�e et la sortie suivent les conventions Classless Internet Domain Routing. Le format pour indiquer un r�seau est address/y o� address est le r�seau repr�sent� sous forme d'une adresse IPv4 ou IPv6 et y est le nombre de bits du masque r�seau. Si y est omis, il calcul� en utilisant les r�gles de l'ancien syst�me de classes d'adresses, � ceci pr�s qu'il sera au moins assez grand pour inclure tous les octets saisis. C'est une erreur de sp�cifier une adresse r�seau avec des bits � droite du masque sp�cifi�.

Tableau 8-18 donne des exemples.

Tableau 8-18. cidr Exemples de saisie de types

Saisie de cidrAffichage de cidrabbrev(cidr)
192.168.100.128/25192.168.100.128/25192.168.100.128/25
192.168/24192.168.0.0/24192.168.0/24
192.168/25192.168.0.0/25192.168.0.0/25
192.168.1192.168.1.0/24192.168.1/24
192.168192.168.0.0/24192.168.0/24
128.1128.1.0.0/16128.1/16
128128.0.0.0/16128.0/16
128.1.2128.1.2.0/24128.1.2/24
10.1.210.1.2.0/2410.1.2/24
10.110.1.0.0/1610.1/16
1010.0.0.0/810/8
10.1.2.3/3210.1.2.3/3210.1.2.3/32
2001:4f8:3:ba::/642001:4f8:3:ba::/642001:4f8:3:ba::/64
2001:4f8:3:ba:2e0:81ff:fe22:d1f1/1282001:4f8:3:ba:2e0:81ff:fe22:d1f1/1282001:4f8:3:ba:2e0:81ff:fe22:d1f1
::ffff:1.2.3.0/120::ffff:1.2.3.0/120::ffff:1.2.3/120
::ffff:1.2.3.0/128::ffff:1.2.3.0/128::ffff:1.2.3.0/128

8.8.3. Comparaison de inet et cidr

La diff�rence principale entre les types de donn�es inet et cidr est que inet accepte des valeurs avec des bits non nuls � la droite du masque de r�seau, alors que inet ne l'accepte pas.

Astuce�: Si n'aimez pas le format d'affichage des valeurs inet et cidr, essayez les fonctions host, text, et abbrev.

8.8.4. macaddr

Le type macaddr stocke des adresses MAC, c'est � dire des adresses de cartes r�seau Ethernet (mais les adresses MAC sont aussi utilis�es dans d'autres cas). Les entr�es sont accept�es dans de nombreux formats, dont:

'08002b:010203'
'08002b-010203'
'0800.2b01.0203'
'08-00-2b-01-02-03'
'08:00:2b:01:02:03'

Qui indiquent tous la m�me adresse. Les majuscules et les minuscules sont accept�es pour les chiffres de af. L'affichage se fait toujours selon le dernier format.

Le r�pertoire contrib/mac de la distribution des sources de PostgreSQL contient des outils qui peuvent �tre utilis�s pour trouver les noms des fabricants de mat�riel li�s � des adresses MAC.