Я хотел бы найти способ выполнить SQL-запрос, который будет вычислять cidr (представление битов) маски подсети, хранящейся в базе данных. Так, например, у меня есть либо 255.255.255.0, либо его десятичное значение (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
Предпочтительно, это будет оператор SQL, который будет работать под командами mysql, postgres, oracle и т.д.