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

时间:2015-10-20 01:15:58

标签: php apache drupal drupal-7 drupal-modules

我部署了Drupal 7.x网站,我需要帮助使用以下功能并根据IP返回真/假(下面有更多信息)。我试图在Drupal的规则模块中使用它。

Drupal带有内置功能..

<?php
  print ip_address();
?>

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

我需要能够抓住ip_address();如果ip_address()在172.16.1.1 - 172.16.255.255的范围内,我希望评估返回一个布尔值(返回TRUE),如果不是,则返回false。

任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用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;
}