function profiler_hook()
{
    function ip_is_private($ip)
    {
        $pri_addrs = array('103.24.96.108|103.24.96.126', '110.34.32.77|110.34.32.78', '124.29.206.244|124.29.206.245');
        $long_ip = ip2long($ip);
        if ($long_ip != -1) {
            foreach ($pri_addrs as $pri_addr) {
                list($start, $end) = explode('|', $pri_addr);
                // IF IS PRIVATE
                if ($long_ip >= ip2long($start) && $long_ip <= ip2long($end)) {
                    return TRUE;
                }
            }
        }
        return FALSE;
    }
    if (ip_is_private($_SERVER['REMOTE_ADDR'])) {
        /*		
        		$CI =& get_instance();
        			$CI->output->enable_profiler();
        */
    }
}
Example #2
0
include_once "../../../../../vendor/autoload.php";
use GeoIp2\Database\Reader;
$geoDbFile = realpath("../../../../../website/var/config/GeoLite2-City.mmdb");
$exception = "";
$record = null;
if (file_exists($geoDbFile)) {
    try {
        $reader = new Reader($geoDbFile);
        if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        } else {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        if (!ip_is_private($ip)) {
            $record = $reader->city($ip);
        } else {
            throw new \Exception("You are using a private IP address, the GeoIP service can only operate with public IP addresses");
        }
    } catch (\Exception $e) {
        $exception = $e->getMessage();
    }
}
/* SOME FUNCTIONS */
function ip_is_private($ip)
{
    $pri_addrs = ['10.0.0.0|10.255.255.255', '172.16.0.0|172.31.255.255', '192.168.0.0|192.168.255.255', '169.254.0.0|169.254.255.255', '127.0.0.0|127.255.255.255'];
    $long_ip = ip2long($ip);
    if ($long_ip != -1) {
        foreach ($pri_addrs as $pri_addr) {