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新手NOTICE错误常见解决方法
Dec 07 PHP
php&amp;mysql 日期操作小记
Feb 27 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
php获取发送给用户的header信息的方法
Mar 16 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
Yii全局函数用法示例
Jan 22 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
mongodb和php的用法详解
Mar 25 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
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python字典操作简明总结
2015/04/13 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
使用python接入微信聊天机器人
2020/03/31 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
用Python开发app后端有优势吗
2020/06/29 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
数据库的约束含义
2012/09/09 面试题
你们项目是如何进行变更控制的
2015/08/26 面试题
本科毕业生专业自荐书范文
2014/02/05 职场文书
施工安全生产承诺书
2014/05/23 职场文书
2019求职信大礼包
2019/05/15 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
MySQL约束超详解
2021/09/04 MySQL
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL