diff --git a/classes/tools.class.php b/classes/tools.class.php index e2eb3b5a..7f1c4f59 100644 --- a/classes/tools.class.php +++ b/classes/tools.class.php @@ -283,5 +283,20 @@ public static function update_user_notes($UserID, $AdminComment) { WHERE UserID = \''.db_string($UserID).'\''); G::$DB->set_query_id($QueryID); } + + /** + * Check if an IP is part of a given CIDR range. + * @param string $CheckIP the IP to be looked up + * @param string $Subnet the CIDR subnet to be checked against + */ + public static function check_cidr_range($CheckIP, $Subnet) { + $IP = ip2long($CheckIP); + $CIDR = split('/',$Subnet); + $SubnetIP = ip2long($CIDR[0]); + $SubnetMaskBits = 32 - $CIDR[1]; + + return (($IP>>$SubnetMaskBits) == ($SubnetIP>>$SubnetMaskBits)); + } + } ?>