从 postgres 中的子网/掩码获取 MAX 和 MIN ip

Mar*_*o L 1 postgresql

我有以下问题:

现在我有一个包含子网/掩码信息的表(例如 192.168.1.0 / 255.255.255.0 )..但我需要从此子网获取最大和最小 IP:

192.168.1.0 / 192.168.1.255

我找到了这个答案:

如何使用 postgres 查询最小或最大 inet/cidr

但似乎:

network_smaller(inet, inet)network_larger(inet, inet)

不存在。即使谷歌搜索我也找不到这些功能的任何答案。

谢谢!

编辑:

版本信息:

x86_64-redhat-linux-gnu 上的 PostgreSQL 9.2.15,由 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) 编译,64 位

Phi*_*ing 6

无论如何,我认为这个问题与您的需求无关。那里定义的 min 和 max 类似于用于查找表中最小/最大的SQLmin()和函数,而不是子网中查找最小/最大的。max()

我一般不喜欢依赖未记录的功能。它们可能是安全的,但我一般不喜欢“可能”这个词。

这里有一个记录网络功能的页面: https://www.postgresql.org/docs/current/static/functions-net.html

您需要的两个是:

  • 分钟将是network(inet)
  • 最大将是broadcast(inet)

这是因为网络名称始终是范围中的“第一个”IP,而广播地址始终是范围中的“最后一个”IP。