Forwarded is a PHP library which parse the Forwarded
request header as defined in RFC 7239. The Forwarded
header is a standardized method for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer, for example.
Forwarded is distributed as a composer library.
Just add the dependency to your composer project:
composer require madeorsk/forwarded
Usually, you just want to get the Forwarded header from your current request (for example when using PHP-FPM), or even just the IP address of the origin of the request.
<?php
use Madeorsk\Forwarded\Forwarded;
$forwarded = Forwarded::get(); // Getting the parsed Forwarded header.
$originIp = Forwarded::getOriginIp(); // Getting the IP address of the origin request from the parsed Forwarded header.
If you cannot obtain the header content from the classic standard way, you can call directly the Forwarded header parser.
<?php
use Madeorsk\Forwarded\Parser;
// Get a Forwarded parsed header from its raw string.
$forwarded = (new Parser())->parse("for=192.0.2.43,for=\"[2001:db8:cafe::17]\",for=unknown");
// Get the Forwarded header content parsed in a raw associative array from its raw string.
$forwardedAssoc = (new Parser())->parseAssoc("for=192.0.2.43,for=\"[2001:db8:cafe::17]\",for=unknown");