如何编写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;
}
我部署了一个 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;
}