我在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的干净/好方法是什么?
发布于 2016-04-13 08:49:45
使用 function。IPv4将返回4,IPv6将返回6。
发布于 2016-04-13 08:47:20
我认为,如果没有省略尾随零点,您只需将字段转换为一个数字,并查看该数字是否小于2倍32 IPv4 (IPV6)。
这意味着在数字转换之前过滤掉冒号和点。
https://stackoverflow.com/questions/36592642
复制相似问题