RETURN date_format(s,f);
END$$
--- NB 24.06.16 DROP FUNCTION IF EXISTS cidr_range$$
--- NB 24.06.16 CREATE FUNCTION cidr_range (cidr text,s text)
--- NB 24.06.16 RETURNS text DETERMINISTIC
--- NB 24.06.16 BEGIN
--- NB 24.06.16 RETURN date_format(s,f);
--- NB 24.06.16 END$$
+DROP FUNCTION IF EXISTS ip_in_subnet_mask$$
+CREATE FUNCTION ip_in_subnet_mask (ip VARCHAR(20), subnet VARCHAR(20), netmask VARCHAR(20)) RETURNS TINYINT(1)
+DETERMINISTIC
+BEGIN
+ RETURN (INET_ATON(ip) & INET_ATON(netmask)) = INET_ATON(subnet);
+END$$
+
+DROP FUNCTION IF EXISTS INET_CTOA$$
+DELIMITER ;;
+CREATE FUNCTION `INET_CTOA`(`paramCIDR` int) RETURNS varchar(15) CHARSET utf8
+ DETERMINISTIC
+ COMMENT 'Converts a CIDR suffix (integer between 0 and 32) to an IPv4 netmask in dotted decimal notation'
+ BEGIN
+ DECLARE `netmask` int unsigned;
+ IF ( (`paramCIDR` < 0) OR (`paramCIDR` > 32) )
+ THEN
+ RETURN NULL;
+ ELSE
+ SET `netmask` = 0xFFFFFFFF - (pow( 2, (32-`paramCIDR`) ) - 1);
+ RETURN INET_NTOA(`netmask`);
+ END IF;
+END ;;
+DELIMITER ;