Piwik_Translate('AnonymizeIP_PluginDescription'), 'author' => 'Piwik', 'author_homepage' => 'http://piwik.org/', 'version' => Piwik_Version::VERSION, ); } /** * @see Piwik_Plugin::getListHooksRegistered */ public function getListHooksRegistered() { return array( 'Tracker.Visit.setVisitorIp' => 'setVisitorIpAddress', ); } /** * Internal function to mask portions of the visitor IP address * * @param string $ip IP address in network address format * @param int $maskLength Number of octets to reset * @return string */ static public function applyIPMask($ip, $maskLength) { $i = Common::strlen($ip); if ($maskLength > $i) { $maskLength = $i; } while ($maskLength-- > 0) { $ip[--$i] = chr(0); } return $ip; } /** * Hook on Tracker.Visit.setVisitorIp to anonymize visitor IP addresses */ public function setVisitorIpAddress(&$ip) { $ip = self::applyIPMask($ip, Config::getInstance()->Tracker['ip_address_mask_length']); } }