Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

GeoIP ServerBased not working when ip masquerading is enabled #3463

Closed
anonymous-piwik-user opened this Issue · 3 comments

3 participants

@anonymous-piwik-user

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.

@mattab
Owner

Thanks for the report!

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

@diosmosis
Collaborator

(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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.