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 相关文章推荐
实现“上一页”和“下一页按钮
Oct 09 PHP
PHP XML数据解析代码
May 26 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
PHP生成二维码的两个方法和实例
Jul 01 PHP
PHP类的反射用法实例
Nov 03 PHP
php判断linux下程序问题实例
Jul 09 PHP
php实现购物车功能(下)
Jan 05 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
Nov 16 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
PHP数组与字符串互相转换实例
May 05 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用户注册邮件激活账户的实现代码
2017/05/31 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
php实现简单四则运算器
2020/11/29 PHP
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
jupyter notebook 重装教程
2020/04/16 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
关于九一八事变的演讲稿2014
2014/09/17 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
普通党员个人整改措施
2014/10/27 职场文书
python 实现的截屏工具
2021/05/08 Python
Linux中文件的基本属性介绍
2022/06/01 Servers