1 <?php
2 class filterSystemByIp extends filterLDAP{
4 static function query($base, $scope, $filter, $attributes, $category, $objectStorage= "")
5 {
7 // IP Range selection
8 $filterByIP = preg_match("/__FilterByIP__/", $filter);
9 $filter = preg_replace("/__FilterByIP__/","",$filter);
10 $ipstart = "";
11 $ipstop = "";
12 if(preg_match("/__IPSTART__=/", $filter)){
13 $ipstart = trim(preg_replace("/^.*__IPSTART__=([^_]*)__.*$/","\\1",$filter),"*");
14 }
15 if(preg_match("/__IPSTOP__=/", $filter)){
16 $ipstop = trim(preg_replace("/^.*__IPSTOP__=([^_]*)__.*$/","\\1",$filter),"*");
17 }
20 // Get entries
21 $filter= preg_replace("/__IPSTART.*$/","",$filter);
22 $entries = filterLDAP::query($base, $scope, $filter, $attributes, $category, $objectStorage);
25 // Filter entries by IP-Address
26 if($filterByIP){
27 foreach($entries as $key => $entry){
28 if(!isset($entry['ipHostNumber'])){
29 unset($entries[$key]);
30 continue;
31 }
32 if(!tests::is_in_ip_range($ipstart,$ipstop, $entry['ipHostNumber'][0])){
33 unset($entries[$key]);
34 continue;
35 }
36 }
37 }
38 return(array_values($entries));
39 }
41 }
42 ?>