Changelog

2.6.3 - 2026-03-23

Swapped Google Analytics for Umami. Same lookup and CSV download events are tracked, same visitor stats — just without sending your data to Google first. Umami is open-source and privacy-friendly, which feels more in keeping with a tool that doesn't log IPs.

2.6.2 - 2026-03-13

Removed the PayPal donation button. Coffee is better anyway, and PayPal's UX is bad.

2.6.1 - 2026-03-13

Housekeeping ahead of open-sourcing the repo:

  • Added defensive HTML escaping.
  • Tidied internal server references out of CI workflow comments.
  • Removed a dead Google Universal Analytics snippet still haunting a couple of pages.
  • Fixed testing tools to use random_int() so generated test IPs actually cover the full IPv4 address space.

2.6.0 - 2026-03-13

The IP lookup engine got a meaningful tune-up, cutting per-IP database time by about 60%. That cuts a 10,000-IP lookup from roughly 4.5 seconds of database time down to under 2. The site also now fires two Google Analytics events for CSV downloads and ip_count, so there's finally a wee little data on how ip2geo is being used being collected. (All of which is still blocked by ad blocker extensions or your friendly neighborhood pi-hole.)

2.5.1 - 2026-03-13

Historical cruft cleanup.

2.5.0 - 2026-03-13

Submitting a large batch of IPs used to mean staring at a blank page for several seconds. No more. The form now submits via AJAX and a full-viewport loading overlay appears immediately showing how many IPs are being processed and stays visible until results are ready. The overlay falls back gracefully to a normal form submit if JavaScript isn't available. Page load transitions are also faster site-wide.

2.4.0 - 2026-03-12

Two releases in one day. We're on a roll. Results are now exportable: a Download CSV button appears above the table after any lookup, generating a properly-quoted RFC 4180 file client-side with no second round-trip to the server. IPs that returned no geo data get their own toggleable section so they're out of the way but not silently discarded. The summary stats below results got a full makeover — monospace, column-aligned, and actually informative (submitted vs. matched vs. filtered vs. unresolved, all accounted for). Also quietly retired about.php and its legacy UA analytics snippet, which had no business still existing.

2.3.0 - 2026-03-12

Taught ip2geo.org to update its own data. MaxMind's GeoLite2-City database now refreshes automatically on the first of every month: downloaded, converted, imported into shadow tables, verified against a known IP, then swapped in atomically while the old data keeps serving. If anything looks off, it rolls back and files a strongly-worded GitHub Actions failure notification. Also added a data freshness date to the footer, because it turns out people care how old their geolocation data is.

2.2.0 - 2026-03-11

Security hardening and grown-up deployment infrastructure. Fixed a handful of XSS vectors (nothing to see here), added a 2MB input cap, and corrected a bug that was silently discarding the first batch of IPs instead of the last. The old versioned index files are gone and git is the version history now, as it was always meant to be. Also introduced a full CI/CD pipeline with a staging environment, because apparently this is a serious project.

2.1.1 - 2025-04-05

Bugfix. Introduction of Changelog. Removed defunct twitter link. Made "About" section slightly more professional (slightly).

2.1.0 - 2025-04-04

Refactor database query approach. ~12% speed improvement through preconverting IPv4 addresses and avoiding INET6_ATON.

2.0.7 - 2025-04-04

Maxmind database update (2025-04-01).