转成整数只能适用ipv4,ipv6本身就是个字符串
v4
// 假设有一个 IPv4 地址
$ip = '192.168.1.1';
// 将 IP 地址转换为整数
$ipLong = ip2long($ip);
// 检查转换是否成功
if ($ipLong != -1) {
// 将整数转换回 IP 地址
$ipBack = long2ip($ipLong);
echo "原始 IP 地址: $ip\n";
echo "转换后的整数: $ipLong\n";
echo "转换回的 IP 地址: $ipBack\n";
} else {
echo "无效的 IP 地址\n";
}
原始 IP 地址: 192.168.1.1
转换后的整数: 3232235777
转换回的 IP 地址: 192.168.1.1
v6
// 假设有一个 IPv6 地址
$ipv6 = '2001:0db8:85a3:0000:0000:8a2e:0370:7334';
// 将 IPv6 地址转换为二进制表示形式
$ipv6Binary = inet_pton($ipv6);
// 检查转换是否成功
if ($ipv6Binary !== false) {
// 二进制字符串
echo "IPv6 地址的二进制表示: " . bin2hex($ipv6Binary) . "\n";
// 将二进制表示形式转换回 IPv6 地址
$ipv6Back = inet_ntop($ipv6Binary);
echo "原始 IPv6 地址: $ipv6\n";
echo "转换回的 IPv6 地址: $ipv6Back\n";
} else {
echo "无效的 IPv6 地址\n";
}
IPv6 地址的二进制表示: 20010db885a3000000008a2e03707334
原始 IPv6 地址: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
转换回的 IPv6 地址: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
标签:IP,转换,ip,整数,echo,地址,IPv6,0000,回来
From: https://www.cnblogs.com/qcy-blog/p/18243989