public static function load() { require_once dirname(__FILE__) . '/Rules/Bbclone.php'; Bouncer_Rules_Bbclone::load(); require_once dirname(__FILE__) . '/Rules/Basic.php'; Bouncer_Rules_Basic::load(); require_once dirname(__FILE__) . '/Rules/Browser.php'; Bouncer_Rules_Browser::load(); require_once dirname(__FILE__) . '/Rules/Robot.php'; Bouncer_Rules_Robot::load(); require_once dirname(__FILE__) . '/Rules/Request.php'; Bouncer_Rules_Request::load(); require_once dirname(__FILE__) . '/Rules/Fingerprint.php'; Bouncer_Rules_Fingerprint::load(); require_once dirname(__FILE__) . '/Rules/Network.php'; Bouncer_Rules_Network::load(); require_once dirname(__FILE__) . '/Rules/Geoip.php'; Bouncer_Rules_Geoip::load(); }
public static function country_code_by_addr($addr, $host) { // first run without geoip extension if (empty(self::$_gi) && !function_exists('geoip_country_code_by_name')) { require_once dirname(__FILE__) . "/../lib/geoip.inc"; self::$_gi = geoip_open(dirname(__FILE__) . "/../lib/geoip.dat", GEOIP_STANDARD); } // without geoip extension if (isset(self::$_gi) && function_exists('geoip_country_code_by_addr')) { $code = geoip_country_code_by_addr(self::$_gi, $addr); // with geoip extension } elseif (function_exists('geoip_country_code_by_name')) { $code = geoip_country_code_by_name($host); } if (empty($code) || $code == 'AP' || $code == 'A1' || $code == 'A2') { $code = 'numeric'; } $code = strtolower($code); return $code; }