The GeoIP Order Blocking Addon Module integrates MaxMind GeoIP data into WHMCS to automatically block orders originating from specified countries or IP ranges. This prevents unwanted traffic and reduces fraud risk during the checkout process. The changelog below preserves every original release entry while adding context on why each change mattered for performance, accuracy, and compatibility. Version 2.0.0 delivered a full rewrite that eliminated legacy lookup code, introduced a free lookup service, reorganized libraries, and improved admin feedback on blocking status.
Regular updates to GeoIP databases are required because IP address allocations change as regional registries assign new blocks. Outdated data leads to incorrect country detection and flawed blocking decisions. Early versions focused on core functionality and platform compatibility, while later releases addressed IPv6 adoption, flexible whitelisting, visual UI improvements, and PHP efficiency. Administrators should consult these notes before upgrading to confirm their WHMCS version and PHP environment align with the targeted release.
#Detailed Changelog
#Version 2.0.0 - Released 10.10.2017
This major release performed a complete rewrite to achieve better performance with modern PHP releases. Older implementations carried unnecessary overhead from deprecated functions and file-based lookups that scaled poorly under load. The rewrite streamlined execution during order validation, reducing latency and resource usage. It added a free GeoIP lookup service that removes the need for constant local file maintenance. The legacy GeoIP.dat lookup system was removed entirely because the new service provided equivalent or better results with less complexity. Maxmind database files and libraries were moved into the vendor directory to follow standard PHP packaging practices, easing future dependency updates. The Lookup Admin addon output was enhanced to clearly indicate whether a given IP address would be blocked or whitelisted, which simplifies rule testing and troubleshooting.
#Version 1.2.0 - Released 07.10.2017
This update aligned the module with the new ASPnix 2.0 licensing system, ensuring continued validation and activation for licensed installations. GeoIP*.dat files were refreshed to July 2017 data, incorporating the latest IP-to-country mappings available at the time. A flag icon was added to IP lookup addon output to give administrators an immediate visual cue for the detected country. The lookup addon interface was refreshed to match the WHMCS 7 look and feel, providing consistent styling and improved usability within the admin area. These changes were important for users migrating to newer WHMCS builds who needed both current licensing support and refreshed geographic data.
#Version 1.1.5 - Released 07.14.2015
Full support for WHMCS 6.0 was implemented so the module remained functional for administrators upgrading their platforms. The geoip.dat file was updated to July 1st, 2015 to reflect contemporary IP allocations. Support for IPv6 was added through GeoPlugin.net and the Maxmind API because IPv6 traffic was growing and prior versions could not classify these addresses, creating potential gaps in blocking rules. The geoipv6.dat file dated July 1st, 2015 was included to enable local lookups for IPv6 ranges. Adding IPv6 capability future-proofed the module as networks transitioned away from IPv4-only environments.
#Version 1.1.3 - Released 12.28.2014
The geoip.dat file was updated to December 1st, 2014 to maintain mapping accuracy. This release also added support for whitelisting single IP addresses or ranges using CIDR notation. Whitelisting provides essential flexibility: administrators can exempt trusted IPs even if they resolve to a generally blocked country. CIDR support allows concise definition of entire subnets rather than listing hundreds of individual addresses. This feature reduced false positives and gave finer control over order acceptance rules. Failure to understand CIDR syntax is a common pitfall that can accidentally whitelist overly broad ranges.
# Whitelist Examples (one entry per line)
# Single IPv4
8.8.8.8
# CIDR IPv4 range
192.0.2.0/24
# Single IPv6
2001:db8::1
#Version 1.1.2 - Released 07.14.2014
WHMCS 5.3.8 was added to the list of supported versions, ensuring stability for users on that specific build. The geoip.dat file was refreshed to July 1st, 2014. These updates were straightforward maintenance releases that kept the module synchronized with both the platform and the latest geographic IP data. Skipping such incremental updates often leads to gradually degrading accuracy as real-world IP assignments drift from the bundled database.
#Version 1.1.1 - Released 05.1.2014
This initial release established the foundational GeoIP order blocking functionality within WHMCS. It provided the baseline integration with GeoIP.dat lookups and basic country-based blocking rules. All subsequent versions expanded on this core by addressing performance, protocol support, licensing, and administrative visibility. Deploying the original version today is not recommended because it lacks IPv6 handling, current database information, and the efficiency gains delivered in later rewrites.
#Key Improvements Across Releases
- Modern PHP performance through complete code rewrite and vendor directory organization
- Free GeoIP lookup service replacing legacy local .dat file dependency
- IPv6 support via GeoPlugin.net, Maxmind API, and dedicated geoipv6.dat
- CIDR-based whitelisting for single IPs and network ranges
- Regular geoip.dat updates to maintain country mapping accuracy
- WHMCS version compatibility and UI alignment including flag icons
#Practical Takeaways
Review the changelog before every upgrade to verify compatibility with your WHMCS and PHP versions. After updating, test several IPs with the Lookup Admin addon to confirm blocking and whitelisting behavior. Keep MaxMind data current to avoid misclassification caused by stale IP ranges. Use the admin output enhancements from version 2.0.0 to streamline configuration. These steps ensure the module continues to deliver reliable geographic order control without introducing performance overhead or false positives.
Comments
No comments yet