Pular para o conteúdo principal
Um endereço IP guardado em um VARCHAR é ordenado alfabeticamente, aceita erros de digitação e não consegue responder se um endereço está dentro de uma rede. O vsql_network_address adiciona quatro tipos de coluna que validam a sua entrada, ordenam corretamente e vêm com as funções de contenção e máscara de rede que os acompanham. Ele segue os tipos inet, cidr, macaddr e macaddr8 do PostgreSQL.

Instalar

O vsql_network_address.veb já está no diretório lib/veb/ do servidor se você instalou o VillageSQL com o script de instalação, a imagem Docker ou um tarball de release. Instale-o no servidor com uma única instrução:
Confirme que ele está lá:
Para compilá-lo você mesmo, siga as instruções de compilação no repositório.

O que ela adiciona

Os tipos

Funções

Exemplo

As linhas voltam em ordem de endereço, e não em ordem alfabética. A ordem textual colocaria 9.0.0.1 depois de 10.8.0.7; a ordem de endereço o coloca antes. Pergunte quais hosts estão em uma rede:
Derive a rede e o seu endereço de broadcast:
O inet_contained_by é estrito, então um endereço que carrega a mesma máscara de rede que a rede não está contido nela. 192.168.1.5/32 dentro de 192.168.1.0/24 retorna 1, enquanto 192.168.1.5/24 dentro da mesma rede retorna 0. Use inet_contained_by_or_equals quando as linhas armazenadas carregam a própria máscara da rede, como faz o exemplo acima.

Veja também