PHP获得客户端的IP
2016-01-19 10:51
429 查看
// 获取IP地址(摘自discuz)
function get_real_ip(){
$ip='未知IP';
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
return is_ip($_SERVER['HTTP_CLIENT_IP'])?$_SERVER['HTTP_CLIENT_IP']:$ip;
}elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
return is_ip($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$ip;
}else{
return is_ip($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:$ip;
}
}
function is_ip($str){
$ip=explode('.',$str);
for($i=0;$i<count($ip);$i++){
if($ip[$i]>255){
return false;
}
}
return preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/',$str);
}
function get_real_ip(){
$ip='未知IP';
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
return is_ip($_SERVER['HTTP_CLIENT_IP'])?$_SERVER['HTTP_CLIENT_IP']:$ip;
}elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
return is_ip($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$ip;
}else{
return is_ip($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:$ip;
}
}
function is_ip($str){
$ip=explode('.',$str);
for($i=0;$i<count($ip);$i++){
if($ip[$i]>255){
return false;
}
}
return preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/',$str);
}
相关文章推荐
- php开启伪静态(2转)
- 关于yii2 试用gii生成的代码,驼峰命名的控制器使用
- PHP实现更新中间关联表数据的两种方法
- PHP得到局域网IP的函数,还不是很好用,哪位大神帮忙优化一下
- php利用phpexcel插件实现数据的导入和导出(支持csv\xls\xlsx格式和超过26个字段列)
- 拦截PHP各种异常和错误,发生致命错误时进行报警,万事防患于未然
- PHP Fuzzing行动——源码审计
- laravel框架的使用1---路由
- phpstorm
- php 正则字符汇总
- Laravel Homestead 使用
- 开启PHP的伪静态
- php连接mysql(1)
- php性能优化
- 随机生成字符串-php-js
- [Windows Server 2012] 更换PHP版本方法
- 在windows 8上搭建FTP服务器
- 8 个必备的PHP功能开发
- PHP得到公网IP和所在城市的代码
- 他山之石-刷新PHP缓冲区为你的站点加速