在PHP中检测IPv6?

时间:2011-03-21 16:47:57

标签: php ip-address ipv6

我目前正在检测用户的IPv4地址并在v4中使用IP块。但是我想捕获IPv6并且也有这个块列表,所以问题是: 将IPv6作为IPv4或PHP中不同的东西是一样的逻辑吗?我只是不确定每个设备是否都有IPv4和IPv6,或者它是其中之一,系统会自动检测它是什么格式并存储它?

1 个答案:

答案 0 :(得分:6)

Apache将REMOTE_ADDR报告给PHP。如果Apache在v6接口上侦听,它将成为v6地址。

很容易区分。 IPv4地址始终具有fullstop .字符,IPv6地址始终包含冒号:

创建阻止列表(或白名单)时,应小心处理v6地址。可以使用两个连续的冒号::来缩短它们。无法保证您的操作系统将使用较短或完整的表单,因此您的脚本必须处理该操作。查看Wikipedia's IPv6页面了解详情。