网站访问用户的IPhttp_x_forwarded_for测试安全性的方法
后getip安全过滤功能复制代码代码如下所示:
功能getip(){
realip美元= ''; / /设置默认值
如果(isset($ _server { 'http_x_forwarded_for ' })){
realip美元美元'http_x_forwarded_for_server { } =;
} elseif(isset($ _server { 'http_client_ip ' })){
realip美元美元'http_client_ip_server { } =;
{人}
realip美元美元'remote_addr_server { } =;
}
preg_match( / ^(( 3 D { }。){ 3 } D { 1,3 }),realip美元,$匹配);
返回匹配$匹配{ 0 }:false;
}
上述功能,添加到IP判断,只读取IP格式数据的开始,第一个满足IP格式值。如果您不返回false。这允许您读取满足格式的IP,并验证数据的IP格式。
如果我在互联网上读到IP,用户在局域网中通过IP,我应该直接过滤它。
在一些网站上,我们经常看到提示,非法的IP地址。事实上,其中的一部分是IP地址格式错误。部分人可能读到IP地址,不满足于互联网的IP格式。下面的函数是用来封装一个函数通过IANA网站规范。通过输入IP地址,可以知道IP是否可以在互联网上使用。
复制代码代码如下所示:
因特网允许使用IP地址。
功能iptype2($ IP){
$iplist = explode (.
如果($ iplist { 0 } > = 224美元iplist { 0 } < = 239)
返回多播;
如果($ iplist { 0 } > = 240美元iplist { 0 } < = 255)
返回保留;
如果(preg_match( / ^ 198 51 100 ,为IP))
Return'TEST-NET-2, documents and examples';
如果(preg_match( / ^ 203 0 113 ,为IP))
return'test-net-3,文档和实例;
如果(preg_match( / ^ 192 。(18 | 19),,为IP))
返回网络基准;
如果(preg_match( / ^ 192 168 ,为IP))
返回专用网络{内部网络;
如果(preg_match( / ^ 192 88 99 ,为IP))
return'ipv6to4继电器;
如果(preg_match( / ^ 192 0 2 ,为IP))
return'test-net-1,文档和实例;
如果(preg_match( / ^ 192 0 0 ,为IP))
返回的保留(IANA);
如果(preg_match( / ^ 192 0 0 ,为IP))
返回的保留(IANA);
如果($ iplist { 0 } = = 172美元iplist { 1 } = 16)
返回专用网络{内部网络;
如果($ iplist { 0 } = = 169美元iplist { 1 } = = 254)
返回本地链接;
如果($ iplist { 0 } = 127)
返回环回地址;
如果($ iplist { 0 } = 10)
返回专用网络{内部网络;
如果($ iplist { 0 } = 0)
返回此网络(仅作为源地址合法);
return'internet网络地址;
}
当你输入IP地址,它返回到the'internet网络地址,然后地址是正确的,而且在互联网上的合法的IP地址。这个功能其实很复杂,,它是排除了很多非互联网使用的IP地址。我们共同的192127,10起始地址估计是熟悉的。但事实上,很多IP地址被保留或使用它。它不能作为一个互联网IP。上述两种功能,我们不仅可以读到正确的IP地址,而且还确保我们在网上读到的IP地址。以上是经常使用的功能工作,欢迎朋友们交流!
作者:成模的QQ号:8292669