function phpAds_proxyLookup() { global $phpAds_config; if (!$phpAds_config['proxy_lookup']) { return; } $proxy = false; if (isset($_SERVER['HTTP_VIA']) && $_SERVER['HTTP_VIA'] != '') { $proxy = true; } if (isset($_SERVER['REMOTE_HOST'])) { if (is_int(strpos($_SERVER['REMOTE_HOST'], 'proxy'))) { $proxy = true; } if (is_int(strpos($_SERVER['REMOTE_HOST'], 'cache'))) { $proxy = true; } if (is_int(strpos($_SERVER['REMOTE_HOST'], 'inktomi'))) { $proxy = true; } } if ($proxy) { $IP = ''; // Overwrite host address if a suitable header is found if (isset($_SERVER['HTTP_FORWARDED']) && $_SERVER['HTTP_FORWARDED'] != '') { $IP = $_SERVER['HTTP_FORWARDED']; } if (isset($_SERVER['HTTP_FORWARDED_FOR']) && $_SERVER['HTTP_FORWARDED_FOR'] != '') { $IP = $_SERVER['HTTP_FORWARDED_FOR']; } if (isset($_SERVER['HTTP_X_FORWARDED']) && $_SERVER['HTTP_X_FORWARDED'] != '') { $IP = $_SERVER['HTTP_X_FORWARDED']; } if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') { $IP = $_SERVER['HTTP_X_FORWARDED_FOR']; } if (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP'] != '') { $IP = $_SERVER['HTTP_CLIENT_IP']; } // Get last item from list $IP = explode(',', $IP); $IP = trim($IP[count($IP) - 1]); if ($IP && $IP != 'unknown' && !phpAds_PrivateSubnet($IP)) { $_SERVER['REMOTE_ADDR'] = $IP; $_SERVER['REMOTE_HOST'] = ''; } } }
if (isset($HTTP_SERVER_VARS['HTTP_FORWARDED_FOR']) && $HTTP_SERVER_VARS['HTTP_FORWARDED_FOR'] != '') { $IP = $HTTP_SERVER_VARS['HTTP_FORWARDED_FOR']; } if (isset($HTTP_SERVER_VARS['HTTP_X_FORWARDED']) && $HTTP_SERVER_VARS['HTTP_X_FORWARDED'] != '') { $IP = $HTTP_SERVER_VARS['HTTP_X_FORWARDED']; } if (isset($HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']) && $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] != '') { $IP = $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']; } if (isset($HTTP_SERVER_VARS['HTTP_CLIENT_IP']) && $HTTP_SERVER_VARS['HTTP_CLIENT_IP'] != '') { $IP = $HTTP_SERVER_VARS['HTTP_CLIENT_IP']; } // Get last item from list $IP = explode(',', $IP); $IP = trim($IP[count($IP) - 1]); if ($IP && $IP != 'unknown' && !phpAds_PrivateSubnet($IP)) { $HTTP_SERVER_VARS['REMOTE_ADDR'] = $IP; $HTTP_SERVER_VARS['REMOTE_HOST'] = ''; } } } // Reverse lookup if (!isset($HTTP_SERVER_VARS['REMOTE_HOST']) || $HTTP_SERVER_VARS['REMOTE_HOST'] == '') { if ($phpAds_config['reverse_lookup']) { $HTTP_SERVER_VARS['REMOTE_HOST'] = @gethostbyaddr($HTTP_SERVER_VARS['REMOTE_ADDR']); } else { $HTTP_SERVER_VARS['REMOTE_HOST'] = $HTTP_SERVER_VARS['REMOTE_ADDR']; } } // Geotracking if ($phpAds_config['geotracking_type'] != '') {