从ThinkPHP中提取的PHP获取客户端IP的代码
模板网 2014-09-01
/**
* 获取客户端IP地址
* @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
* @param boolean $adv 是否进行高级模式获取(有可能被伪装)
* @return mixed
*/
function
get_client_ip(
$type
= 0,
$adv
=false) {
$type
=
$type
? 1 : 0;
static
$ip
= NULL;
if
(
$ip
!== NULL)
return
$ip
[
$type
];
if
(
$adv
){
if
(isset(
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
])) {
$arr
=
explode
(
','
,
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
]);
$pos
=
array_search
(
'unknown'
,
$arr
);
if
(false !==
$pos
) unset(
$arr
[
$pos
]);
$ip
= trim(
$arr
[0]);
}
elseif
(isset(
$_SERVER
[
'HTTP_CLIENT_IP'
])) {
$ip
=
$_SERVER
[
'HTTP_CLIENT_IP'
];
}
elseif
(isset(
$_SERVER
[
'REMOTE_ADDR'
])) {
$ip
=
$_SERVER
[
'REMOTE_ADDR'
];
}
}
elseif
(isset(
$_SERVER
[
'REMOTE_ADDR'
])) {
$ip
=
$_SERVER
[
'REMOTE_ADDR'
];
}
// IP地址合法验证
$long
= sprintf(
"%u"
,
ip2long
(
$ip
));
$ip
=
$long
?
array
(
$ip
,
$long
) :
array
(
'0.0.0.0'
, 0);
return
$ip
[
$type
];
}
相关文章
- php在线解压zip文件代码
解压方法: 1.上传压缩包如abc.zip到upzip.php同级目录,如: /test/abc.zip /test/unzip.php 2.访问http://www.abc.com/test/unzip.php?zip=abc.zip 3.执行一次后,可见结果abc.zip解压成功!,勿多次执行。 4.解压后,记得务必删除压缩包和解压文件,因为没有
- phpcms中提取的mysql处理类mysql.class.php
从PHPCMS中提取的mysql处理类,使用非常方便,将使用方法整理处理方便大家使用:
- 从ThinkPHP中提取的PHP获取客户端IP的代码
/** * 获取客户端IP地址 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 * @param boolean $adv 是否进行高级模式获取(有可能被伪装) * @return mixed */
随机推荐
- php在线解压zip文件代码
解压方法: 1.上传压缩包如abc.zip到upzip.php同级目录,如: /test/abc.zip /test/unzip.php 2.访问http://www.abc.com/test/unzip.php?zip=abc.zip 3.执行一次后,可见结果abc.zip解压成功!,勿多次执行。 4.解压后,记得务必删除压缩包和解压文件,因为没有
- phpcms中提取的mysql处理类mysql.class.php
从PHPCMS中提取的mysql处理类,使用非常方便,将使用方法整理处理方便大家使用:
- 从ThinkPHP中提取的PHP获取客户端IP的代码
/** * 获取客户端IP地址 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 * @param boolean $adv 是否进行高级模式获取(有可能被伪装) * @return mixed */