Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#1110 closed Bug (fixed)

Handle IPv4 mapped addresses; Detect IPv6 addresses at Installation

Reported by: vipsoft Owned by:
Priority: normal Milestone: Piwik 0.5.5
Component: Core Keywords:
Cc: Sensitive: no

Description (last modified by vipsoft)

core/Common.php getIp() uses ip2long(). This only works for ipv4 addresses.

ipv6 addresses result in 0 (and are converted back as "0.0.0.0").

Change History (5)

comment:1 Changed 4 years ago by vipsoft (robocoder)

  • Description modified (diff)

comment:2 Changed 4 years ago by vipsoft (robocoder)

Unit tests should ensure these formats are handled:

  • 2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • 2001:db8:85a3:0:0:8a2e:370:7334 (leading zeros omitted)
  • 2001:db8:85a3::8a2e:370:7334 (groups of zeros omitted)
  • ::ffff:c000:280 and ::ffff:192.0.2.128(double quad notation for ipv4 mapped addresses)

comment:3 Changed 4 years ago by vipsoft (robocoder)

MySQL bigint is 8 bytes and won't accommodate a 128 bit ipv6 address. So... we'll defer comment:2 for post-1.0.

The current proposal is:

  • Installation: detect ipv6 REMOTE_ADDR and warn
  • core/Common.php: getIp() - accept IPv4-mapped addresses prefixed by ::ffff:

comment:4 Changed 4 years ago by vipsoft (robocoder)

  • Resolution set to fixed
  • Status changed from new to closed

(In [1790]) fixes #1110 - warn if IPv6 address detected during Installation; handle IPv4 mapped addresses

comment:5 Changed 4 years ago by vipsoft (robocoder)

  • Summary changed from ipv6 not supported to Handle IPv4 mapped addresses; Detect IPv6 addresses at Installation
Note: See TracTickets for help on using tickets.