Theme editor

Paid [XTR] IP Threat Monitor 1.0.24

Change log

Bug Fixes
  • Fixed Apple Private Relay memory exhaustion error
    Apple's iCloud Private Relay IP list has grown to ~287,000 entries, causing "Allowed memory size exhausted" errors on high-traffic sites.
  • Implemented stream-based CSV parsing
    Instead of loading the entire IP list into memory at once, the file is now read line-by-line in 4KB chunks.
  • Added IPv6 prefix deduplication
    245,000+ IPv6 /64 entries are now aggregated into ~25,000 unique /48 prefixes.
  • Added IPv4 CIDR filtering
    Only /28 and larger subnets are retained, eliminating unnecessary granular entries.
  • Added thundering herd protection (Lock mechanism)
    Prevents concurrent requests from simultaneously hitting the Apple API when cache is empty.
Performance Improvements
  • Memory usage: 100% reduction (32 MB → 0 B increase)
  • List size: 90% reduction (287K → 27K entries)
  • Cache file: 85% smaller (~15 MB → ~2 MB)

Release notes

This update addresses a critical memory exhaustion error caused by the excessive growth of Apple's iCloud Private Relay IP list.

What Was the Problem?​

Apple's official Private Relay IP list (egress-ip-ranges.csv) has grown to approximately 287,000 entries. The previous version loaded this entire list into memory at once, causing:
  • On high-traffic sites
  • With 256 MB or lower PHP memory limits
  • During cache-cold moments (after server restart)
The error "Fatal Error: Allowed memory size exhausted" to occur.

What Changed?​

  1. Smart Streaming: The IP list is now read in 4KB chunks instead of being loaded entirely into memory.
  2. IPv6 Optimization: 245,000 IPv6 addresses are now deduplicated into unique /48 prefixes (~25,000).
  3. Lock Mechanism: Prevents multiple concurrent requests from hitting the Apple API simultaneously.

Results​

MetricBeforeAfter
Memory Increase32+ MB0 MB
List Size287,00027,000

Update Recommendation​

All users who have enabled Apple Private Relay exemption are strongly encouraged to update to this version.

After updating, toggling the "Allow iCloud Private Relay" option off and on in the add-on settings will regenerate the cache.
Back
Top