Extension:TrustedXFF

The TrustedXFF extension maintains a list of trusted hosts in a file in CDB format.

For details, see XFF project.

The file can be generated using the generate.php maintenance script.

This extension requires that your web server software will have the DBA module of PHP enabled, which may not be allowed on some hosts - so it will be a good idea to check this before installing this extension.

Installation
Install PHP-DBA; on many Linux distros this is available through a package manager (like apt-get or yum)

Ensure the files are in the correct location:
 * You are in the base directory for your wiki,
 * ./LocalSettings.php is in that directory
 * ./trusted-hosts.txt is in that directory
 * ./maintenance/ is directly under it, as is a writeable ./cache/ directory
 * ./extensions/TrustedXFF/ is one level further

These most likely need to be actual files, not merely symlinks pointing somewhere else, as the code uses __DIR__ and relative paths.

Insert in LocalSettings.php:

Remain in the base directory; run generate.php using:

At this point, there should be an output file created at ./cache/trusted-xff.cdb

If this exists, and Special:Version reports the extension as installed, it should be good to go. If you have more than one wiki, be sure to copy the output file to the ./cache/ directory for each of your MediaWiki installations.

Limitations

 * The extension will not whitelist large ranges, such as an /18 (or wider). The list will compile with warnings and the large range will be ignored. This is an issue for services like CloudFlare that occupy multiple, huge chunks of IPv4 space.
 * The extension will not accept IPv6 ranges in trusted-hosts.txt; there are a few such ranges hard-coded into TrustedXFF.body.php, but adding more addresses requires editing the code directly.