IPv4 Normalizer
The League\Uri\IPv4Normalizer is a userland PHP IPv4 Host Normalizer.
<?php
use League\Uri\IPv4Normalizer;
use League\Uri\Components\Host;
$host = new Host('0');
$normalizer = new IPv4Normalizer();
$normalizedHost = $normalizer->normalizeHost($host);
echo $host; // returns 0
echo $normalizedHost; // returns 0.0.0.0
Usage
Description
<?php
use League\Uri\Contracts\AuthorityInterface;
use League\Uri\Contracts\HostInterface;
use League\Uri\Contracts\UriInterface;
use League\Uri\IPv4Normalizer;
use League\Uri\IPv4\Calculator;
use \Psr\Http\Message\UriInterface as Psr7UriInterface;
public function IPv4Normalizer::__construct(IPv4Calculator $calculator = null);
public function IPv4Normalizer::normalizeUri(UriInterface|Psr7UriInterface $uri): UriInterface|Psr7UriInterface ;
public function IPv4Normalizer::normalizeAuthority(AuthorityInterface $host): AuthorityInterface;
public function IPv4Normalizer::normalizeHost(HostInterface $host): HostInterface;
The IPv4Normalizer::normalize* methods only parameters are objects that contain or are a host component.
The League\Uri\IPv4Calculators\IPv4Calculator is responsible for making all the calculation needed to perform the conversion between IPv4 string representation.
The package comes bundled with three implementations:
League\Uri\IPv4Calculators\GMPCalculatorwhich relies on GMP extension;League\Uri\IPv4Calculators\BCMathCalculatorwhich relies on BCMath extension;League\Uri\IPv4Calculators\NativeCalculatorwhich relies on PHP build against a x.64 architecture;
If no League\Uri\IPv4Calculators\IPv4Calculator implementing object is provided the class will try to load one of these implementations.
If it can not, a League\Uri\Exceptions\Ipv4CalculatorMissing exception will be thrown.
The methods always return an instance of the same type as the submitted one with the host changed if the normalization is applicable or unchanged otherwise.
<?php
use League\Uri\Components\Authority;
use League\Uri\IPv4\NativeCalculator;
use League\Uri\IPv4Normalizer;
$authority = new Authority('hello:world@0300.0250.0000.0001:442');
$normalizer = new IPv4Normalizer(new NativeCalculator());
$normalizedAuthority = $normalizer->normalizeAuthority($authority);
echo $authority->getHost(); // returns '0300.0250.0000.0001'
echo $normalizedAuthority->getHost(); // returns '192.168.0.1'