如何在PostgreSQL中找到CIDR输入的开始和结束IP地址

问题描述

我的CIDR输入为 10.0.0.0/28 如何在该输入中找到开始和结束IP地址。 手动我知道 10.0.0.0 是起始地址 并且 10.0.0.15 是End IP,Postgresql中有什么方法可以找到它?

解决方法

您所质疑的10.0.0.10/28是错误的CIDR输入。应该是10.0.0.0/28 您可以这样编写查询:

select 
host('10.0.0.0/28'::cidr) AS lower,host(broadcast('10.0.0.0/28'::cidr)) AS upper 

更新后的答案-如果输入为inet,请尝试这种方式

select 
host(network('10.0.0.10/28'::inet)) AS lower,host(broadcast(network('10.0.0.10/28'::inet)::cidr)) AS upper 

DEMO