function _viewersHostOkayToLog($adId = 0, $zoneId = 0, $trackerId = 0) { $aConf = $GLOBALS['_MAX']['CONF']; $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $okToLog = true; if (!empty($aConf['logging']['enforceUserAgents'])) { $aKnownBrowsers = explode('|', strtolower($aConf['logging']['enforceUserAgents'])); $allowed = false; foreach ($aKnownBrowsers as $browser) { if (strpos($agent, $browser) !== false) { $allowed = true; break; } } OX_Delivery_logMessage('user-agent browser : ' . $agent . ' is ' . ($allowed ? '' : 'not ') . 'allowed', 7); if (!$allowed) { $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = 'enforceUserAgents'; $okToLog = false; } } if (!empty($aConf['logging']['ignoreUserAgents'])) { $aKnownBots = explode('|', strtolower($aConf['logging']['ignoreUserAgents'])); foreach ($aKnownBots as $bot) { if (strpos($agent, $bot) !== false) { OX_Delivery_logMessage('user-agent ' . $agent . ' is a known bot ' . $bot, 7); $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = 'ignoreUserAgents'; $okToLog = false; } } } if (!empty($aConf['logging']['ignoreHosts'])) { $hosts = str_replace(',', '|', $aConf['logging']['ignoreHosts']); $hosts = '#^(' . $hosts . ')$#i'; $hosts = str_replace('.', '\\.', $hosts); $hosts = str_replace('*', '[^.]+', $hosts); if (preg_match($hosts, $_SERVER['REMOTE_ADDR'])) { OX_Delivery_logMessage('viewer\'s ip is in the ignore list ' . $_SERVER['REMOTE_ADDR'], 7); $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = 'ignoreHosts_ip'; $okToLog = false; } if (preg_match($hosts, $_SERVER['REMOTE_HOST'])) { OX_Delivery_logMessage('viewer\'s host is in the ignore list ' . $_SERVER['REMOTE_HOST'], 7); $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = 'ignoreHosts_host'; $okToLog = false; } } if ($okToLog) { OX_Delivery_logMessage('viewer\'s host is OK to log', 7); } $result = OX_Delivery_Common_Hook('filterEvent', array($adId, $zoneId, $trackerId)); if (!empty($result) && is_array($result)) { foreach ($result as $pci => $value) { if ($value == true) { $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = $pci; $okToLog = false; } } } return $okToLog; }
/** * A "private" function to check if the information to be logged should be * logged or ignored, on the basis of the viewer's IP address or hostname. * * @access private * @param integer $adId The id of the ad being logged * @param integer $zoneId The id of the zone being logged * @param integer $trackerId The id of the tracker being logged * @return boolean True if the information should be logged, or false if the * IP address or host name is in the list of hosts for which * information should not be logged. */ function _viewersHostOkayToLog($adId = 0, $zoneId = 0, $trackerId = 0) { $aConf = $GLOBALS['_MAX']['CONF']; $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $okToLog = true; // Check the user-agent against the list of known browsers (if set) if (!empty($aConf['logging']['enforceUserAgents'])) { $aKnownBrowsers = explode('|', strtolower($aConf['logging']['enforceUserAgents'])); $allowed = false; foreach ($aKnownBrowsers as $browser) { if (strpos($agent, $browser) !== false) { $allowed = true; break; } } ###START_STRIP_DELIVERY OA::debug('user-agent browser : ' . $agent . ' is ' . ($allowed ? '' : 'not ') . 'allowed'); ###END_STRIP_DELIVERY if (!$allowed) { $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = 'enforceUserAgents'; $okToLog = false; } } // Check the user-agent against the list of known bots (if set) if (!empty($aConf['logging']['ignoreUserAgents'])) { $aKnownBots = explode('|', strtolower($aConf['logging']['ignoreUserAgents'])); foreach ($aKnownBots as $bot) { if (strpos($agent, $bot) !== false) { ###START_STRIP_DELIVERY OA::debug('user-agent ' . $agent . ' is a known bot ' . $bot); ###END_STRIP_DELIVERY $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = 'ignoreUserAgents'; $okToLog = false; } } } // Check if this IP address has been blocked if (!empty($aConf['logging']['ignoreHosts'])) { $hosts = str_replace(',', '|', $aConf['logging']['ignoreHosts']); $hosts = '#^(' . $hosts . ')$#i'; // Format the hosts to ignore in a PCRE format $hosts = str_replace('.', '\\.', $hosts); $hosts = str_replace('*', '[^.]+', $hosts); // Check if the viewer's IP address is in the ignore list if (preg_match($hosts, $_SERVER['REMOTE_ADDR'])) { ###START_STRIP_DELIVERY OA::debug('viewer\'s ip is in the ignore list ' . $_SERVER['REMOTE_ADDR']); ###END_STRIP_DELIVERY $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = 'ignoreHosts_ip'; $okToLog = false; } // Check if the viewer's hostname is in the ignore list if (preg_match($hosts, $_SERVER['REMOTE_HOST'])) { ###START_STRIP_DELIVERY OA::debug('viewer\'s host is in the ignore list ' . $_SERVER['REMOTE_HOST']); ###END_STRIP_DELIVERY $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = 'ignoreHosts_host'; $okToLog = false; } } ###START_STRIP_DELIVERY if ($okToLog) { OA::debug('viewers host is OK to log'); } ###END_STRIP_DELIVERY $result = OX_Delivery_Common_Hook('filterEvent', array($adId, $zoneId, $trackerId)); if (!empty($result) && is_array($result)) { foreach ($result as $pci => $value) { if ($value == true) { $GLOBALS['_MAX']['EVENT_FILTER_FLAGS'][] = $pci; $okToLog = false; } } } return $okToLog; }