私はinet
フィールドとして定義されたpostgresデータベースにipフィールドを持っています。ipv4とipv6のアドレスを区別する方法
現時点では、ipv4とipv6を判別するために、コロンカウントと/または '。'を使用することができます。ある程度までは数えますが、より良い方法が必要です。
COLON_COUNT = (length(ip::text) - length(replace(ip::text, ':', '')));
DOT_COUNT = (length(ip::text) - length(replace(ip::text, '.', '')));
アドレスがipv4かipv6かどうかを判断するにはどうすればよいですか?
後ろの0を省略しないと、フィールドを数値に変換し、その数値が2のべき乗以下であるかどうかを確認できます(IPV6)。これは、数値変換の前にコロンとドットをフィルタリングすることを意味します。 – weismat
これは良いアイデアです! – monkut