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 相关文章推荐
第十二节 类的自动加载 [12]
Oct 09 PHP
PHP通过COM使用ADODB的简单例子
Dec 31 PHP
php 文本文件的读取效率
Feb 10 PHP
PHP时间格式控制符对照表分享
Jul 23 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
PHP类继承 extends使用介绍
Jan 14 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
PHP根据key删除数组中指定的元素
Feb 28 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
如何过滤高亮显示非法字符
2006/10/09 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
php操作mongoDB实例分析
2014/12/29 PHP
微信支付扫码支付php版
2016/07/22 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
年级组长自我鉴定
2014/02/22 职场文书
企业文化宣传标语
2014/06/09 职场文书
小班下学期个人总结
2015/02/12 职场文书
项目负责人岗位职责
2015/02/15 职场文书
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA