PHP 获取ip地址代码汇总


Posted in PHP onJuly 05, 2015

代码一:

function getip() {
  static $ip = '';
  $ip = $_SERVER['REMOTE_ADDR'];
  if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {
    $ip = $_SERVER['HTTP_CDN_SRC_IP'];
  } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
  } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
    foreach ($matches[0] AS $xip) {
      if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
        $ip = $xip;
        break;
      }
    }
  }
  return $ip;
}

代码二:

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?>

方法三:

<?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?>

方法四:

<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP
?>

方法五:

<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
 $ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
 $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
 if($ip){
  array_unshift($ips, $ip); $ip = FALSE;
 }
 for($i = 0; $i < count($ips); $i++){
  if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
  $ip = $ips[$i];
  break;
  }
 }
}
return($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo get_real_ip();
?>

方法六:

<?php
if(getenv('HTTP_CLIENT_IP')){
$onlineip = getenv('HTTP_CLIENT_IP');
}
elseif(getenv('HTTP_X_FORWARDED_FOR')){
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif(getenv('REMOTE_ADDR')){
$onlineip = getenv('REMOTE_ADDR');
}
else{
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
?>
PHP 相关文章推荐
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
PHP 魔术函数使用说明
May 14 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 PHP
PHP 类相关函数的使用详解
May 10 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
PHP实现事件机制实例分析
Jun 26 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
PHP中$_SERVER使用说明
Jul 05 #PHP
php实现短信发送代码
Jul 05 #PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 #PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 #PHP
Cygwin中安装PHP方法步骤
Jul 04 #PHP
php使用Session和文件统计在线人数
Jul 04 #PHP
使用XHGui来测试PHP性能的教程
Jul 03 #PHP
You might like
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
简单的php购物车代码
2020/06/05 PHP
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
Python3.6正式版新特性预览
2016/12/15 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
python3爬虫中异步协程的用法
2020/07/10 Python
python 代码运行时间获取方式详解
2020/09/18 Python
canvas线条的属性详解
2018/03/27 HTML / CSS
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
护士求职推荐信范文
2013/11/23 职场文书
电子商务自荐书范文
2014/01/04 职场文书
网络工程师职业规划
2014/02/10 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis