gpt4 book ai didi

php - 存储和检索 IPv4 和 IPv6 地址

转载 作者:行者123 更新时间:2023-11-29 05:12:35 25 4
gpt4 key购买 nike

关于在 PHP/MySQL 设置上存储 IPv4 和 IPv6 地址的最佳方式,SO 上有一百万个问题,但答案要么已过时(仅 IPv4),要么相互矛盾/不完整。

我创建这个问题是为了提供一个明确的答案,为您提供您需要知道的一切。

最佳答案

当您只需要担心 IPv4 时,您可以使用 PHP 的 ip2longlong2ip 快速轻松地将 IP 地址转换为整数。然而,现在几乎每个人都应该期望在某个时候遇到一些 IPv6 地址,而且这种情况只会增加。

兼顾两者的一种常见且有效的解决方案是使用 PHPinet_pton function (同时处理 IPv4 和 v6),然后将结果存储在数据库的 VARBINARY(16) 列中。

所以,假设我们有一个 IPv6 地址,例如:FE80:0000:0000:0000:0202:B3FF:FE1E:8329

当使用 inet_pton 转换并存储在 VARBINARY(16) 列中时,它看起来像这样:

0xfe800000000000000202b3fffe1e8329

然后您可以从数据库中检索它并使用 inet_ntop 显示它。

例如:

echo inet_ntop($ipAddressFromDB);

这是一种在 MySQL 数据库中存储 IP 地址的快速有效的方法。

关于php - 存储和检索 IPv4 和 IPv6 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37353628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com