保存在 VARCHAR 中的 IP 地址按字母顺序排序,接受拼写错误,也无法
回答某个地址是否落在某个网络之内。vsql_network_address 添加了四种
列类型,它们验证输入、正确排序,并附带配套的包含和子网掩码函数。
它遵循 PostgreSQL 的 inet、cidr、macaddr 和 macaddr8 类型。
如果您使用安装脚本、Docker 镜像或发行版压缩包安装了 VillageSQL,
vsql_network_address.veb 已经位于服务器的 lib/veb/ 目录中。
用一条语句将它安装到服务器中:
确认它已存在:
要自行构建,请按照存储库中的
构建说明进行操作。
新增内容
各行按地址顺序而不是字母顺序返回。文本顺序会把 9.0.0.1 排在 10.8.0.7 之后;地址顺序把它排在前面。
询问哪些主机位于某个网络上:
推导网络及其广播地址:
inet_contained_by 是严格的,因此带有与网络相同子网掩码的地址不被
该网络包含。192.168.1.5/32 在 192.168.1.0/24 之内返回 1,而
192.168.1.5/24 在同一网络之内返回 0。当存储的行带有网络自身的掩码
时(如上面的示例),请使用 inet_contained_by_or_equals。
另请参阅