Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Chapitre 8. Types de données | Avance rapide | Suivant |
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
Nom | Taille de stockage | Description |
---|---|---|
cidr | 12 or 24 octets | réseaux IPv4 et IPv6 |
inet | 12 or 24 octets | hôtes et réseaux IPv4 et IPv6 |
macaddr | 6 bytes | adresses 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.
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.
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 cidr | Affichage de cidr | abbrev (cidr) |
---|---|---|
192.168.100.128/25 | 192.168.100.128/25 | 192.168.100.128/25 |
192.168/24 | 192.168.0.0/24 | 192.168.0/24 |
192.168/25 | 192.168.0.0/25 | 192.168.0.0/25 |
192.168.1 | 192.168.1.0/24 | 192.168.1/24 |
192.168 | 192.168.0.0/24 | 192.168.0/24 |
128.1 | 128.1.0.0/16 | 128.1/16 |
128 | 128.0.0.0/16 | 128.0/16 |
128.1.2 | 128.1.2.0/24 | 128.1.2/24 |
10.1.2 | 10.1.2.0/24 | 10.1.2/24 |
10.1 | 10.1.0.0/16 | 10.1/16 |
10 | 10.0.0.0/8 | 10/8 |
10.1.2.3/32 | 10.1.2.3/32 | 10.1.2.3/32 |
2001:4f8:3:ba::/64 | 2001:4f8:3:ba::/64 | 2001:4f8:3:ba::/64 |
2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128 | 2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128 | 2001: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 |
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
, etabbrev
.
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' |
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.
Précédent | Sommaire | Suivant |
Types géométriques | Niveau supérieur | Types champs de bits |