IpHelper

IpHelper 是一个用于处理 IP 地址的实用程序类。

最终

1.6.0

Joomla 框架

方法

__construct

私有构造函数,防止实例化此类。

__construct() : 

1.6.0

响应

混合

checkIPv6CIDR

检查 IPv6 地址 $ip 是否是 IPv6 CIDR 块 $cidrnet 的一部分。

checkIPv6CIDR( ip,  cidrnet) : 
静态

1.6.0

参数

ip

string要检查的 IPv6 地址,例如 21DA:00D3:0000:2F3B:02AC:00FF:FE28:9C5A

cidrnet

stringIPv6 CIDR 块,例如 21DA:00D3:0000:2F3B::/64

响应

布尔

detectAndCleanIP

获取访客的 IP 地址。

detectAndCleanIP() : 
静态

自动处理反向代理报告中间设备的 IP 地址,例如负载均衡器。示例

  • https://www.akeebabackup.com/support/admin-tools/13743-double-ip-adresses-in-security-exception-log-warnings.html
  • https://stackoverflow.com/questions/2422395/why-is-request-envremote-addr-returning-two-ips

使用的解决方案是假设最后一个 IP 地址是外部的。

1.6.0

响应

字符串

detectIP

获取访客的 IP 地址

detectIP() : 
静态

1.6.0

响应

字符串

getIp

获取当前访客的 IP 地址

getIp() : 
静态

1.6.0

响应

字符串

inetToBits

将 inet_pton 输出转换为位字符串

inetToBits( inet) : 
静态

1.6.0

参数

inet

stringIPv4 或 IPv6 地址的 in_addr 表示形式

响应

字符串

IPinList

检查 IP 是否包含在 IP 或 IP 表达式的列表中

IPinList( ip, array|string ipTable = '') : 
静态

1.6.0

参数

ip

string要检查的 IPv4/IPv6 地址

ipTable

array<string|int, mixed>|string要检查的 IP 表达式(或逗号分隔或数组列表的 IP 表达式)

响应

布尔

isIPv6

它是 IPv6 IP 地址吗?

isIPv6( ip) : 
静态

1.6.0

参数

ip

stringIPv4 或 IPv6 地址

响应

布尔

setAllowIpOverrides

我应该允许通过 X-Forwarded-For 或 Client-Ip HTTP 标头覆盖远程客户端的 IP 吗?

setAllowIpOverrides( newState) : 
静态

1.6.0

参数

newState

bool为 true 表示允许覆盖

响应

无效

setIp

设置当前访客的 IP 地址

setIp( ip) : 
静态

1.6.0

参数

ip

string访客的 IP 地址

响应

无效

workaroundIPIssues

解决 REMOTE_ADDR 不包含用户 IP 的问题

workaroundIPIssues() : 
静态

1.6.0

响应

无效

属性

ip

当前访客的 IP 地址

静态

1.6.0

类型

字符串

allowIpOverrides

我应该允许通过 X-Forwarded-For 或 Client-Ip HTTP 标头覆盖 IP 吗?

静态

1.6.0

注意

在 2.0+ 版本中,默认值为 false。

类型

布尔