Title: Gryphon Verified Client IP
Author: Sly Gryphon
Published: <strong>April 12, 2026</strong>
Last modified: April 13, 2026

---

Search plugins

![](https://ps.w.org/gryphon-verified-client-ip/assets/icon.svg?rev=3504517)

# Gryphon Verified Client IP

 By [Sly Gryphon](https://profiles.wordpress.org/sgryphon/)

[Download](https://downloads.wordpress.org/plugin/gryphon-verified-client-ip.1.2.1.zip)

 * [Details](https://test.wordpress.org/plugins/gryphon-verified-client-ip/#description)
 * [Reviews](https://test.wordpress.org/plugins/gryphon-verified-client-ip/#reviews)
 *  [Installation](https://test.wordpress.org/plugins/gryphon-verified-client-ip/#installation)
 * [Development](https://test.wordpress.org/plugins/gryphon-verified-client-ip/#developers)

 [Support](https://wordpress.org/support/plugin/gryphon-verified-client-ip/)

## Description

Gryphon Verified Client IP determines the client IP by walking the forwarding chain,
only trusting addresses that match your configured proxy networks (by CIDR range).
It stops at the first untrusted hop, which is the true client IP. The resolved address
replaces `REMOTE_ADDR` early in the WordPress lifecycle, allowing other plugins 
to use it.

The component is secure by default and only trusted proxies are traversed; spoofed
headers are ignored. Both IPv4 and IPv6 are fully supported, including protocol 
translation.

Multiple header formats are supported including standard RFC 7239 `Forwarded`, common`
X-Forwarded-For`, Cloudflare `CF-Connecting-IP`, or any custom header.

The component includes a diagnostics panel that can be enabled to record incoming
requests with full header dumps and algorithm step traces for debugging.

For more detail, see the GitHub project site [Gryphon WordPress Verified Client IP](https://github.com/sgryphon/essential-wordpress-verified-client-ip).

#### Compatibility Note

If your server uses **Apache `mod_remoteip`** or **nginx `set_real_ip_from`**, those
modules will pre-resolve `REMOTE_ADDR` from forwarding headers before PHP runs. 
Disable the web server module and let this plugin handle IP resolution instead, 
or let it pre-resolve and use this plugin for any additional proxies not covered
by the engine.

## Screenshots

 * [[
 * Main settings page — enable/disable the plugin, set the forward limit, and configure
   proto/host processing.
 * [[
 * Scheme detail — configure header name, trusted proxy CIDR ranges, and optional
   token for a scheme.
 * [[
 * Diagnostics page — list of recorded requests with resolved IP and whether `REMOTE_ADDR`
   was changed.
 * [[
 * Diagnostics with IPv6 — shows IPv6 addresses and protocol translation.
 * [[
 * Diagnostics detail — full step trace showing each hop evaluated by the algorithm.
 * [[
 * Comments page — WordPress comments showing the verified client IP for each commenter.

## Installation

#### From plugin directory

 1. Go to **Site Admin  Plugins  Add Plugin**
 2. Search Plugins for “Gryphon Verified Client IP”
 3. Click **Install Now**
 4. Click **Activate**

Navigate to **Settings  Verified Client IP** in the WordPress admin.

Configure with your proxy setup, or accept the defaults if suitable.

#### Manual installation

 1. Download the plugin zip file.
 2. In WordPress Admin, go to **Plugins  Add Plugin  Upload Plugin**.
 3. Upload the zip and click **Install Now**.
 4. Click **Activate Plugin**.

Or manually upload the `gryphon-verified-client-ip` folder to `wp-content/plugins/`
and activate via the Plugins screen.

Navigate to **Settings  Verified Client IP** in the WordPress admin.

Configure with your proxy setup, or accept the defaults if suitable.

## FAQ

### The plugin has no effect. What should I check?

Check that `REMOTE_ADDR` matches a trusted proxy in an enabled scheme. Use the **
Diagnostics** tab to record a request and inspect the step trace.

### The plugin is a no-op even though my proxies are configured.

Apache `mod_remoteip` or nginx `set_real_ip_from` may be pre-resolving the IP before
PHP starts. In the Diagnostics tab, if the **Remote Address** column already shows
the visitor’s IP rather than the upstream proxy’s IP, a web-server-level module 
is the cause.

Disable the relevant module or accept that addresses are already partially resolved.

### I’m resolving the wrong IP.

Check that your **Forward Limit** matches the exact number of proxies in your chain.
Use the step trace in **Diagnostics** to see each hop the algorithm evaluated.

### Cloudflare is not working.

Enable the Cloudflare scheme and add [Cloudflare’s published IP ranges](https://www.cloudflare.com/ips/)
to the trusted proxies list.

### Can I extend the plugin with my own code?

Yes. Three hooks are available:

 * **Filter `vcip_resolved_ip`** `(string $ip, array $steps): string` — modify the
   resolved IP before it replaces `REMOTE_ADDR`.
 * **Filter `vcip_trusted_proxies`** `(array $schemes): array` — dynamically add
   or modify proxy schemes before matching.
 * **Action `vcip_ip_resolved`** `(string $newIp, string $originalIp, array $steps)`—
   fired after `REMOTE_ADDR` has been replaced.

### What happens when the plugin is deactivated?

Deactivation only flushes object caches — no settings or data are removed. Uninstalling
the plugin removes all `vcip_*` options and diagnostic transients.

### Is diagnostic data stored permanently?

No. Diagnostic records are stored as WordPress transients with a 24-hour expiry 
and are automatically removed when you uninstall the plugin. Because the data includes
IP addresses and HTTP headers, only record what you need for debugging and clear
the data when you are done.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Gryphon Verified Client IP” is open source software. The following people have 
contributed to this plugin.

Contributors

 *   [ Sly Gryphon ](https://profiles.wordpress.org/sgryphon/)

[Translate “Gryphon Verified Client IP” into your language.](https://translate.wordpress.org/projects/wp-plugins/gryphon-verified-client-ip)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/gryphon-verified-client-ip/),
check out the [SVN repository](https://plugins.svn.wordpress.org/gryphon-verified-client-ip/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/gryphon-verified-client-ip/)
by [RSS](https://plugins.trac.wordpress.org/log/gryphon-verified-client-ip/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.1

 * Reformat readme.txt to display properly in WordPress plugin library.
 * Add Settings and Guide links to plugins page

#### 1.2.0

 * Update plugin display name and slug, again, to Gryphon Verified Client IP.
 * Update namespace and package names to Gryphon Verified Client IP.

#### 1.1.0

 * Update plugin display name and slug, for WordPress plugin naming requirements,
   to Essential Verified Client IP.
 * Update namespace and package names to Essential Verified Client IP.

#### 1.0.1

 * Minor fixes for initial release.

#### 1.0.0

 * Initial release of Verified Client IP plugin.
 * RFC 7239 `Forwarded`, `X-Forwarded-For`, and Cloudflare `CF-Connecting-IP` schemes.
 * Configurable forward limit and trusted proxy CIDR ranges.
 * Proto and Host processing.
 * Diagnostics with request recording and step traces.
 * Must-use plugin support.
 * WordPress hooks: `vcip_resolved_ip`, `vcip_trusted_proxies`, `vcip_ip_resolved`.

## Meta

 *  Version **1.2.1**
 *  Last updated **1 month ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 8.1 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/gryphon-verified-client-ip/)
 * Tags
 * [Client IP](https://test.wordpress.org/plugins/tags/client-ip/)[ip address](https://test.wordpress.org/plugins/tags/ip-address/)
   [proxy](https://test.wordpress.org/plugins/tags/proxy/)[user ip](https://test.wordpress.org/plugins/tags/user-ip/)
   [visitor ip](https://test.wordpress.org/plugins/tags/visitor-ip/)
 *  [Advanced View](https://test.wordpress.org/plugins/gryphon-verified-client-ip/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/gryphon-verified-client-ip/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/gryphon-verified-client-ip/reviews/)

## Contributors

 *   [ Sly Gryphon ](https://profiles.wordpress.org/sgryphon/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/gryphon-verified-client-ip/)