如何编写PHP代码来评估客户端IP?

How to write PHP code to evaluate client IP?

我部署了一个 Drupal 7.x 网站,我需要有关使用以下功能和 returning true/false 基于 IP 的帮助(更多信息见下文)。我正在尝试在 Drupal 的规则模块中使用它。

Drupal 自带一个内置函数..

<?php
  print ip_address();
?>

此 returns 客户端的 IP 地址,采用 ipv4 地址形式,例如 172.16.14.100(示例)。 (https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/ip_address/7)

我需要能够抓住 ip_address();并在 PHP 中对其进行评估,如果 ip_address() 在 172.16.1.1 - 172.16 的范围内,我希望评估为 return 布尔值(return TRUE) .255.255 如果不是则为 false。

有人能帮忙吗?

您可以尝试使用 ip2long 将 IPv4 地址更改为一个长整数并用于比较。

$example_ip = ip2long("192.168.1.1");
$high_ip = ip2long("172.16.255.255");
$low_ip = ip2long("172.16.1.1");
if ($example_ip <= $high_ip && $low_ip <= $example_ip) {
  return true;
}
else {
    return false;
}