PHP:如何检测 IPv6 是否在 IPV6 范围内?

标签 php ip ipv6

我有一个 ipv6 范围,但我不知道如何检测 $_SERVER['REMOTE_ADDRESS'] 是否在 ipv6 范围内?需要帮忙。谢谢

最佳答案

检查地址是否在范围内的最简单方法是将地址和范围的限制转换为二进制,然后使用普通的比较运算符:

$first_in_range = inet_pton('2001:db8::');
$last_in_range = inet_pton('2001:db8::ffff:ffff:ffff:ffff');

$address = inet_pton($_SERVER['REMOTE_ADDR']);

if ((strlen($address) == strlen($first_in_range))
&&  ($address >= $first_in_range && $address <= $last_in_range)) {
    // In range
} else {
    // Not in range
}

关于PHP:如何检测 IPv6 是否在 IPV6 范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14360407/

相关文章:

ios - 网络连接检查在 Swift 中的 IPv6 网络上崩溃

从 C 中的 Contiki uip 地址构造新的 IPv6 地址

networking - Android 设备如何以编程方式推断它所连接的 Linux 设备的 IP 地址?

SSL (https) 拒绝在 IPv6 网络 Digitalocean 中加载网站

php - 使用 php/Java 读取 foxpro DB

c++ - 从比特流中读取 uint16_t

java - 如何将地址从 IPv4 转换为 IPv6

php - 如何从 Android 应用程序连接 MySQL 数据库?

php - echo 语句中的逗号表示什么?

php - 单篇文章的多个类别(PHP MYSQL)