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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
php读取msn上的用户信息类
Dec 05 PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
Jun 17 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
php实现转换ubb代码的方法
Jun 18 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 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获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
linux下为php添加curl扩展的方法
2011/07/29 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
javascript数组去掉重复
2011/05/12 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
详解vue-cli 脚手架 安装
2019/04/16 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
模具设计与制造专业自荐书
2014/07/01 职场文书
总经理检讨书
2014/09/15 职场文书
重温入党誓词主持词
2015/06/29 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
Matlab如何实现矩阵复制扩充
2021/06/02 Python
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python