Пример #1
0
 /**
  * @param string $addr Should be in dot or colon notation (127.0.0.1 or ::1)
  * @return bool
  */
 private function _isPrivateIP($ip)
 {
     // Run this through the preset list for IPv4 addresses.
     if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false) {
         $wordfenceLib = realpath(dirname(__FILE__) . '/../lib');
         include $wordfenceLib . '/wfIPWhitelist.php';
         // defines $wfIPWhitelist
         $private = $wfIPWhitelist['private'];
         foreach ($private as $a) {
             if (wfWAFUtils::subnetContainsIP($a, $ip)) {
                 return true;
             }
         }
     }
     return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6) !== false && filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false;
 }
 protected function checkForWhitelisted($ip)
 {
     $wordfenceLib = realpath(dirname(__FILE__) . '/../lib');
     include $wordfenceLib . '/wfIPWhitelist.php';
     // defines $wfIPWhitelist
     foreach ($wfIPWhitelist as $group) {
         foreach ($group as $subnet) {
             if ($subnet instanceof wfWAFUserIPRange) {
                 //Not currently reached
                 if ($subnet->isIPInRange($ip)) {
                     return true;
                 }
             } elseif (wfWAFUtils::subnetContainsIP($subnet, $ip)) {
                 return true;
             }
         }
     }
     return false;
 }