9.11. Fonctions et opérateurs sur les adresses réseau
Le Tableau 9.31,
« Opérateurs cidr et inet » affiche les opérateurs disponibles pour
les types cidr et inet. Les opérateurs <<,
<<=, >>
et >>= testent l'inclusion de
sous-réseau. Ils ne considèrent que les parties réseau des deux
adresses, ignorant toute partie hôte, et déterminent si une partie
réseau est identique ou consitue un sous-réseau de l'autre.
Tableau 9.31. Opérateurs cidr et inet
|
Opérateur
|
Description
|
Exemple
|
|
<
|
est plus petit que
|
inet '192.168.1.5' < inet
'192.168.1.6'
|
|
<=
|
est plus petit que ou égal à
|
inet '192.168.1.5' <= inet
'192.168.1.5'
|
|
=
|
est égal à
|
inet '192.168.1.5' = inet
'192.168.1.5'
|
|
>=
|
est plus grand ou égal à
|
inet '192.168.1.5' >= inet
'192.168.1.5'
|
|
>
|
est plus grand que
|
inet '192.168.1.5' > inet
'192.168.1.4'
|
|
<>
|
n'est pas égal à
|
inet '192.168.1.5' <> inet
'192.168.1.4'
|
|
<<
|
est contenu dans
|
inet '192.168.1.5' << inet
'192.168.1/24'
|
|
<<=
|
est contenu dans ou égal à
|
inet '192.168.1/24' <<= inet
'192.168.1/24'
|
|
>>
|
contient
|
inet'192.168.1/24' >> inet
'192.168.1.5'
|
|
>>=
|
contient ou est égal à
|
inet '192.168.1/24' >>= inet
'192.168.1/24'
|
|
~
|
bitwise NOT
|
~ inet '192.168.1.6'
|
|
&
|
bitwise AND
|
inet '192.168.1.6' & inet
'0.0.0.255'
|
|
|
|
bitwise OR
|
inet '192.168.1.6' | inet
'0.0.0.255'
|
|
+
|
addition
|
inet '192.168.1.6' + 25
|
|
-
|
soustraction
|
inet '192.168.1.43' - 36
|
|
-
|
soustraction
|
inet '192.168.1.43' - inet
'192.168.1.19'
|
Le Tableau 9.32,
« Fonctions cidr et inet » affiche les fonctions utilisables avec
les types cidr et inet. Les fonctions host,
text et abbrev
ont principalement pour but d'offrir des formats d'affichage
alternatifs.
Tableau 9.32. Fonctions cidr
et inet
|
Fonction
|
Type de retour
|
Description
|
Exemple
|
Résultat
|
|
abbrev(inet)
|
text
|
format textuel d'affichage raccourci
|
abbrev(inet '10.1.0.0/16')
|
10.1.0.0/16
|
|
abbrev(cidr)
|
text
|
format textuel d'affichage raccourci
|
abbrev(cidr '10.1.0.0/16')
|
10.1/16
|
|
broadcast(inet)
|
inet
|
adresse de broadcast pour le réseau
|
broadcast('192.168.1.5/24')
|
192.168.1.255/24
|
|
family(inet)
|
int
|
extraction de la famille d'adresse ; 4 pour IPv4, 6 pour
IPv6
|
family('::1')
|
6
|
|
host(inet)
|
text
|
extraction de l'adresse IP en texte
|
host('192.168.1.5/24')
|
192.168.1.5
|
|
hostmask(inet)
|
inet
|
construction du masque d'hôte pour le réseau
|
hostmask('192.168.23.20/30')
|
0.0.0.3
|
|
masklen(inet)
|
int
|
extraction de la longueur du masque réseau
|
masklen('192.168.1.5/24')
|
24
|
|
netmask(inet)
|
inet
|
construction du masque réseau
|
netmask('192.168.1.5/24')
|
255.255.255.0
|
|
network(inet)
|
cidr
|
extraction de la partie réseau de l'adresse
|
network('192.168.1.5/24')
|
192.168.1.0/24
|
|
set_masklen(inet,
int)
|
inet
|
configure la longueur du masque réseau pour les valeurs
inet
|
set_masklen('192.168.1.5/24', 16)
|
192.168.1.5/16
|
|
set_masklen(cidr,
int)
|
cidr
|
configure la longueur du masque réseau pour les valeurs
cidr
|
set_masklen('192.168.1.0/24'::cidr,
16)
|
192.168.0.0/16
|
|
text(inet)
|
text
|
extraction de l'adresse IP et de la longueur du masque
réseau comme texte
|
text(inet '192.168.1.5')
|
192.168.1.5/32
|
Toute valeur cidr peut être convertie en
inet implicitement ou explicitement ; de ce
fait, les fonctions indiquées ci-dessus comme opérant sur le type
inet opèrent aussi sur le type cidr. (Lorsque les fonctions sont séparées pour les
types inet et cidr, c'est que leur comportement peut différer.) Il
est également permis de convertir une valeur inet en cidr. Dans ce cas,
tout bit à la droite du masque réseau est silencieusement positionné
à zéro pour créer une valeur cidr valide.
De plus, une valeur de type texte peut être transtypée en
inet ou cidr à
l'aide de la syntaxe habituelle de transtypage : par exemple
inet(
expression
) ou
nom_colonne
::cidr.
Le Tableau 9.33,
« Fonctions macaddr » affiche
les fonctions utilsables avec le type macaddr. La fonction
trunc(macaddr) renvoie
une adresse MAC avec les trois derniers octets initialisés à zéro.
Ceci peut être utilisé pour associer le préfixe restant à un
manufacturier.
Tableau 9.33. Fonctions macaddr
|
Fonction
|
Type de retour
|
Description
|
Exemple
|
Résultat
|
|
trunc(macaddr)
|
macaddr
|
initialiser les trois octets finaux à zéro
|
trunc(macaddr '12:34:56:78:90:ab')
|
12:34:56:00:00:00
|
Le type macaddr supporte aussi les
opérateurs relationnels standards (>,
<=, etc.) de tri lexicographique.