php - 使用 PHP 扩展 IPv6 地址的快速方法

标签 php tcp ipv6

我正在从事一个需要扩展 IPv6 地址的项目。其他用户创建的功能不多,而且现有的功能都很丑陋。其中一些包括多个 foreachgmp_init,这增加了很多开销并且更难维护代码。我需要一个简单、不费力的脚本来扩展 IPv6。

为社区发布这个。

最佳答案

下面是两行代码,其中 $ip 是一个压缩的 IPv6 地址。返回展开的 $ip

示例:

$ip = "fe80:01::af0";
echo expand($ip); // fe80:0001:0000:0000:0000:0000:0000:0af0

函数:

function expand($ip){
    $hex = unpack("H*hex", inet_pton($ip));         
    $ip = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex['hex']), 0, -1);

    return $ip;
}

关于php - 使用 PHP 扩展 IPv6 地址的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12095835/

相关文章:

php - XML 命名空间 - 如何获取它们?

http - 使用 std 在 Rust 中发出 HTTP 请求

c - 如何区分扩展头和上层头

ipv6 - IPv6地址范围

java - Java 中的 ipv6 套接字权限被拒绝

php - 如何在不使用 ajax 重新加载的情况下提交我的表单?

php - preg_match - 只能由数字、连字符 (-) 和空格组成

php - Docker nginx php-fpm 7.4 alpine 与 CentOS 7 中的 Oracle Instant Client - 无法加载动态库 'oci8.so' 和 'pdo_oci.so'

c++ - 使用 TCP 发送 Iplimage 时出错

Java TCP重传超时