Ich möchte eine Möglichkeit finden, eine SQL-Abfrage zu machen, die die cidr (Bit-Darstellung) einer in der Datenbank gespeicherten Subnetzmaske berechnet. So habe ich zum Beispiel entweder 255.255.255.0 oder den Dezimalwert (4294967040) in der Datenbank gespeichert. Ich möchte einen Select ausführen und über die Abfrage die /24-Darstellung zurückerhalten.
Ich habe Dinge wie die folgenden getan, um die letzte IP eines Subnetzes zu bestimmen, so dass ich hoffe, etwas Ähnliches zu tun, um die cidr Darstellung einer Maske zu bestimmen.
select concat(inet_ntoa(ip_addr),'-',
inet_ntoa(ip_addr+(POWER(2,32)-ip_mask-1))) range
from subnets
order by ip_addr
Vorzugsweise sollte es sich um eine SQL-Anweisung handeln, die unter mysql, postgres, oracle usw. funktioniert.