我需要将 ipv6 地址转换为其半字节格式以用于动态创建 ptr 记录。以下是我从维基百科得到的信息:



我唯一能找到的关于半字节的东西是在包函数 http://www.php.net/pack 中。我找不到任何带有谷歌搜索问题示例的解决方案。

任何帮助是极大的赞赏。

最佳答案

给定一个合适的现代版本的 PHP(>= 5.1.0,或 Windows 上的 5.3+),使用 inet_pton 函数将 IPv6 地址解析为一个 16 字节的数组,然后使用标准字符串操作来反转它。

$ip = '2001:db8::567:89ab';
$addr = inet_pton($ip);
$unpack = unpack('H*hex', $addr);
$hex = $unpack['hex'];
$arpa = implode('.', array_reverse(str_split($hex))) . '.ip6.arpa';

10-07 13:04
查看更多