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中动态HTML的输出技术
Oct 09 PHP
在IIS上安装PHP4.0正式版
Oct 09 PHP
CodeIgniter php mvc框架 中国网站
May 26 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
php调用mysql数据 dbclass类
May 07 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
php微信公众号开发模式详解
Nov 28 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
php命令行模式代码实例详解
Feb 26 PHP
php字符串倒叙
Apr 01 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/11/30 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
详解在Python程序中使用Cookie的教程
2015/04/30 Python
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
python获取Pandas列名的几种方法
2019/08/07 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
python 如何区分return和yield
2020/09/22 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
2015最新婚礼主持词
2015/06/30 职场文书
运动员加油词
2015/07/18 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
Python集合set()使用的方法详解
2022/03/18 Python
python三子棋游戏
2022/05/04 Python