@anonymous-matomo-user opened this Issue on October 21st 2012

I found that I still had to have the GeoIP databases in the misc folder even though the server based geoip processing is enabled which means that the server based info is not used.

The issue is, in my opinion, in ServerBased.php in the beginning of the getLocation function:

    public function getLocation( $info )
        // geoip modules that are built into servers can't use a forced IP. in this case we try
        // to fallback to another version.
        $myIP = Piwik_IP::getIpFromHeader();
        if ($info['ip'] != $myIP
            && (!isset($info['disable_fallbacks'])
                || !$info['disable_fallbacks']))

If you are anonymizing the IP address it will never match the one from the header or the one returned from the ServerBased localization.
The header contains the full ip address and the server based localization also returns the full ip address but piwik - internally - has the anoymized ip address which is just rarely the same.

I'd suggest to either leave out that check or apply the same anonymization to the $myIP as to the one send into this function.

@anonymous-matomo-user commented on October 21st 2012
@mattab commented on October 21st 2012 Member

Thanks for the report!

We'll check that it works OK with IP anonymization on.

@diosmosis commented on October 23rd 2012 Member

(In [7285]) Fixes #3463, allow serverbased geoip provider to work w/ anonymized IPs & add description about this issue in provider description.

This Issue was closed on October 23rd 2012
Powered by GitHub Issue Mirror