ossinkine/pseudo-ipv4

将IPv6地址转换为伪IPv4(E类空间的有效IPv4地址)

v1.1.0 2020-11-09 09:57 UTC

This package is auto-updated.

Last update: 2024-09-09 18:24:57 UTC


README

Build Status

伪IPv4是一个库,它将IPv6地址转换为E类空间中的IPv4地址(240.0.0.0 - 255.255.255.255)。如果您的应用程序仅支持IPv4,但客户使用IPv6,则这可能很有用。更多信息请参阅CloudFlare解决方案

工作原理

伪IPv4确定给定的地址是否是6to4,并获取原始IPv4地址。否则,它从给定的IPv6地址中获取前8个字节并将它们转换为4个字节。

安装

composer require ossinkine/pseudo-ipv4

用法

创建一个转换实例并将IPv6地址传递给它。

use Ossinkine\PseudoIpv4\PseudoIpv4Converter;

$ipv6 = '2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d';
$converter = new PseudoIpv4Converter();
$ipv4 = $converter->convert($ipv6);

如果您不确定地址是否是IPv6,您可以捕获适当的异常。

use Ossinkine\PseudoIpv4\Exception\WrongIpv6Exception;
use Ossinkine\PseudoIpv4\PseudoIpv4Converter;

$ip = $_SERVER['REMOTE_ADDR'];
$converter = new PseudoIpv4Converter();
try {
    $ipv4 = $converter->convert($ip);
} catch (WrongIpv6Exception $exception) {
    $ipv4 = $ip;
}

许可证

伪IPv4遵循MIT许可证