6.10. Funções para tipo endereço de rede

A Tabela 6-23 mostra os operadores disponíveis para os tipos inet e cidr. Os operadores <<, <<=, >>, >>= testam a inclusão na subrede: somente consideram as partes de rede destes dois endereços, ignorando qualquer parte do hospedeiro, determinando se a parte de rede é idêntica ou uma subrede da outra.

Tabela 6-23. Operadores cidr e inet

OperadorDescriçãoUtilização
< Menor queinet '192.168.1.5' < inet '192.168.1.6'
<= Maior que ou igualinet '192.168.1.5' <= inet '192.168.1.5'
= Igualinet '192.168.1.5' = inet '192.168.1.5'
>= Maior ou igualinet '192.168.1.5' >= inet '192.168.1.5'
> Maiorinet '192.168.1.5' > inet '192.168.1.4'
<> Diferenteinet '192.168.1.5' <> inet '192.168.1.4'
<< está contido eminet '192.168.1.5' << inet '192.168.1/24'
<<= está contido em ou é igualinet '192.168.1/24' <<= inet '192.168.1/24'
>> contéminet'192.168.1/24' >> inet '192.168.1.5'
>>= contém ou é igualinet '192.168.1/24' >>= inet '192.168.1/24'

A Tabela 6-24 mostra as funções disponíveis para utilizar com os tipos de dado inet e cidr. As funções host(), text() e abbrev() são voltadas principalmente para oferecer alternativas para o formato de exibição. Um campo texto pode ser transformado em endereço de rede utilizando a sintaxe habitual de conversão: inet(expressão) ou nome_da_coluna::inet.

Tabela 6-24. Funções cidr e inet

FunçãoRetornaDescriçãoExemploResultado
broadcast(inet)inetendereço de difusão da redebroadcast('192.168.1.5/24')192.168.1.255/24
host(inet)textextrai o endereço de IP como textohost('192.168.1.5/24')192.168.1.5
masklen(inet)integerextrai o comprimento da máscara de redemasklen('192.168.1.5/24')24
set_masklen(inet,integer)inetdefine o comprimento da máscara de rede para o valor do tipo inetset_masklen('192.168.1.5/24',16)192.168.1.5/16
netmask(inet)inetconstrói máscara de rede para a redenetmask('192.168.1.5/24')255.255.255.0
network(inet)cidrextrai a parte de rede do endereçonetwork('192.168.1.5/24')192.168.1.0/24
text(inet)textextrai o endereço de IP e o comprimento da máscara como textotext(inet '192.168.1.5')192.168.1.5/32
abbrev(inet)textextrai a exibição abreviada como textoabbrev(cidr '10.1.0.0/16')10.1/16

A Tabela 6-25 mostra as funções disponíveis para utilizar com o tipo mac. A função trunc(macaddr) retorna um endereço MAC com os últimos 3 bytes feitos iguais a zero. Isto pode ser utilizado para associar o prefixo remanescente com o fabricante. O diretório contrib/mac da distribuição do fonte contém alguns utilitários para criar e manter este tipo de tabela de associação.

Tabela 6-25. Funções para o tipo macaddr

FunçãoRetornaDescriçãoExemploResultado
trunc(macaddr)macaddrtorna os 3 últimos bytes iguais a zerotrunc(macaddr '12:34:56:78:90:ab')12:34:56:00:00:00

O tipo macaddr também suporta os operadores relacionais padrão (>, <=, etc.) para ordenação lexicográfica.