Me gustaría encontrar una forma de hacer una consulta SQL que calcule el cidr (representación de bits) de una máscara de subred almacenada en la base de datos. Entonces, por ejemplo, tengo 255.255.255.0 o su valor decimal (4294967040) almacenado en la base de datos. Me gustaría hacer una selección y obtener una representación de 24 a través de la consulta.Uso de SQL para determinar el valor de cidr de una máscara de subred
He hecho cosas como las siguientes para determinar la última IP de una subred, así que espero hacer algo similar para determinar la representación cidr de una máscara.
select concat(inet_ntoa(ip_addr),'-',
inet_ntoa(ip_addr+(POWER(2,32)-ip_mask-1))) range
from subnets
order by ip_addr
Preferentemente, esta sería una instrucción SQL que funcionaría bajo MySQL, PostgreSQL, Oracle, etc.
log2 ... ¡increíble! :-) –
Comprobé esto con todos los valores en esta tabla y encontré que es exacto: https://kthx.at/subnetmask/. – apostl3pol