データベースに格納されているサブネット マスクの cidr (ビット表現) を計算する SQL クエリを実行する方法を見つけたいと思います。たとえば、データベースには 255.255.255.0 またはその 10 進数値 (4294967040) が格納されています。選択を行い、クエリを介して /24 表現を取得したいと思います。
サブネットの最後の IP を決定するために次のようなことを行ったので、マスクの cidr 表現を決定するために同様のことをしたいと考えています。
select concat(inet_ntoa(ip_addr),'-',
inet_ntoa(ip_addr+(POWER(2,32)-ip_mask-1))) range
from subnets
order by ip_addr
これは、mysql、postgres、oracle などで機能する SQL ステートメントであることが望ましいです。