%PDF- %PDF-
Direktori : /data/www_bck/varak.net_bck/stats.varak.net/plugins/PrivacyManager/ |
Current File : //data/www_bck/varak.net_bck/stats.varak.net/plugins/PrivacyManager/IPAnonymizer.php |
<?php /** * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later * */ namespace Piwik\Plugins\PrivacyManager; use Piwik\Common; use Matomo\Network\IP; /** * Anonymize visitor IP addresses to comply with the privacy laws/guidelines in countries, such as Germany. */ class IPAnonymizer { /** * Internal function to mask portions of the visitor IP address * * @param IP $ip * @param int $maskLength Number of octets to reset * @return IP */ public static function applyIPMask(IP $ip, $maskLength) { $newIpObject = $ip->anonymize($maskLength); return $newIpObject; } /** * Hook on Tracker.Visit.setVisitorIp to anomymize visitor IP addresses * @param string $ip IP address in binary format (network format) */ public function setVisitorIpAddress(&$ip) { $ipObject = IP::fromBinaryIP($ip); if (!$this->isActive()) { Common::printDebug("Visitor IP was _not_ anonymized: ". $ipObject->toString()); return; } $privacyConfig = new Config(); $newIpObject = self::applyIPMask($ipObject, $privacyConfig->ipAddressMaskLength); $ip = $newIpObject->toBinary(); Common::printDebug("Visitor IP (was: ". $ipObject->toString() .") has been anonymized: ". $newIpObject->toString()); } /** * Deactivates IP anonymization. This function will not be called by the Tracker. */ public static function deactivate() { $privacyConfig = new Config(); $privacyConfig->ipAnonymizerEnabled = false; } /** * Activates IP anonymization. This function will not be called by the Tracker. */ public static function activate() { $privacyConfig = new Config(); $privacyConfig->ipAnonymizerEnabled = true; } /** * Returns true if IP anonymization support is enabled, false if otherwise. * * @return bool */ public static function isActive() { $privacyConfig = new Config(); return $privacyConfig->ipAnonymizerEnabled; } }