我目前正在检测用户的IPv4地址并在v4中使用IP块。但是我想捕获IPv6并且也有这个块列表,所以问题是: 将IPv6作为IPv4或PHP中不同的东西是一样的逻辑吗?我只是不确定每个设备是否都有IPv4和IPv6,或者它是其中之一,系统会自动检测它是什么格式并存储它?
答案 0 :(得分:6)
Apache将REMOTE_ADDR
报告给PHP。如果Apache在v6接口上侦听,它将成为v6地址。
很容易区分。 IPv4地址始终具有fullstop .
字符,IPv6地址始终包含冒号:
。
创建阻止列表(或白名单)时,应小心处理v6地址。可以使用两个连续的冒号::
来缩短它们。无法保证您的操作系统将使用较短或完整的表单,因此您的脚本必须处理该操作。查看Wikipedia's IPv6页面了解详情。