我想将 IP 范围存储到数据库中。问题是一些IP是ipv4和一些ipv6。我想将所有转换为 ipv6 然后存储到数据库中。例如:根据转换器:
192.168.1.100 => 0:0:0:0:0:ffff:c0a8:164
问题在于 php 以不同的方式对待它们:
echo bin2hex(inet_pton('192.168.1.100'));
c0a80164
echo bin2hex(inet_pton('0:0:0:0:0:ffff:c0a8:164'));
00000000000000000000ffffc0a80164
echo bin2hex(inet_pton('0000:0000:0000:0000:0000:0000:192.168.1.100'));
000000000000000000000000c0a80164
对我来说,可以在数据库中毫无问题地进行 ip 比较(特别是对于 ipv4)非常重要。