我在postgres数据库中有一个ip字段,定义为COLON_COUNT = (length(ip::text) - length(replace(ip::text, ':', '')));
DOT_COUNT = (length(ip::text) - length(replace(ip::text, '.', '')));
字段。
目前,为了确定ipv4 vs ipv6,看起来我可以使用冒号和/或'。'在某种程度上,但必须有更好的方法,对吗?
realm = Realm.getInstance(...)
确定地址是ipv4还是ipv6的干净/好方法是什么?
答案 0 :(得分:5)
使用family()
function。 IPv4将返回4,IPv6将返回6.
答案 1 :(得分:1)
我认为如果没有省略尾随零,你可以将字段转换为数字并查看该数字是否小于2的权限32 IPv4或不是(IPV6)。
这意味着过滤掉冒号和点在数字转换之前。