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 相关文章推荐
PHP Ajax实现页面无刷新发表评论
Jan 02 PHP
深入PHP异步执行的详解
Jun 03 PHP
深入php list()函数的详解
Jun 05 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
php调用新浪短链接API的方法
Nov 08 PHP
php使用parse_url和parse_str解析URL
Feb 22 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
Mar 18 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 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的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
JS实现多物体运动的方法详解
2018/01/23 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
python进阶之自定义可迭代的类
2019/08/20 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
internal修饰符起什么作用
2013/12/16 面试题
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
户外活动策划方案
2014/03/12 职场文书
代领报检证委托书范本
2014/10/11 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
作弊检讨书
2015/01/27 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python