Poniżej dla potomoności, parę przydatnych funkcji w MySQL służących do oblicznia danych sieciowych:
DROP FUNCTION IF EXISTS check_network;
DROP FUNCTION IF EXISTS get_network;
DROP FUNCTION IF EXISTS get_broadcast;
delimiter |
CREATE FUNCTION check_network(ip1 VARCHAR(25), ip_netmask VARCHAR(25), ip2 VARCHAR(25))
RETURNS INT
DETERMINISTIC
BEGIN
IF((INET_ATON(ip2) & INET_ATON(ip_netmask)) = (INET_ATON(ip1) & INET_ATON(ip_netmask)))
THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END|
CREATE FUNCTION get_network(ip1 VARCHAR(25), ip_netmask VARCHAR(25))
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
RETURN INET_ATON(ip1) & INET_ATON(ip_netmask);
END|
CREATE FUNCTION get_broadcast(ip1 VARCHAR(25), ip_netmask VARCHAR(25))
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
RETURN INET_NTOA(INET_ATON(ip1) + (INET_ATON('255.255.255.255') - INET_ATON(ip_netmask)));
END|
delimiter ;
DROP FUNCTION IF EXISTS get_network;
DROP FUNCTION IF EXISTS get_broadcast;
delimiter |
CREATE FUNCTION check_network(ip1 VARCHAR(25), ip_netmask VARCHAR(25), ip2 VARCHAR(25))
RETURNS INT
DETERMINISTIC
BEGIN
IF((INET_ATON(ip2) & INET_ATON(ip_netmask)) = (INET_ATON(ip1) & INET_ATON(ip_netmask)))
THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END|
CREATE FUNCTION get_network(ip1 VARCHAR(25), ip_netmask VARCHAR(25))
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
RETURN INET_ATON(ip1) & INET_ATON(ip_netmask);
END|
CREATE FUNCTION get_broadcast(ip1 VARCHAR(25), ip_netmask VARCHAR(25))
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
RETURN INET_NTOA(INET_ATON(ip1) + (INET_ATON('255.255.255.255') - INET_ATON(ip_netmask)));
END|
delimiter ;