postgresql - 识别 ipv4 与 ipv6 地址的方法

标签 postgresql

我在 postgres 数据库中有一个 ip 字段定义为 inet 字段。

目前,要确定 ipv4 还是 ipv6,我似乎可以使用冒号计数和/或“.”。在某种程度上算数,但一定有更好的方法,对吧?

COLON_COUNT = (length(ip::text) - length(replace(ip::text, ':', '')));
DOT_COUNT = (length(ip::text) - length(replace(ip::text, '.', '')));

确定地址是 ipv4 还是 ipv6 的干净/好方法是什么?

最佳答案

使用 family() function . IPv4 将返回 4,IPv6 将返回 6。

关于postgresql - 识别 ipv4 与 ipv6 地址的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36592642/

相关文章:

sql - 计算阶段之间的持续时间

postgresql - PL/pgSQL 函数中的 "ERROR: query has no destination for result data"

arrays - PostgreSQL - 动态表,在函数中插入文本数组中的值

java - Hibernate 设置约束 "ON UPDATE CASCADE"

java - JPA 2 @SequenceGenerator @GeneratedValue 产生唯一约束冲突

java - 如何使用 JOOQ 记录的更新来仅更新 jsonb 字段中嵌入的更改?

database - 如何在 Windows 中将用户添加到 PostgreSQL?

macos - 创建数据库后如何登录odoo?

postgresql - 从 CSV 有条件地插入 postgres DB

php - 从 postgreSQL 到 Elasticsearch 索引大量数据(约 1200 万行)非常慢