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自动反斜杠的函数代码
Jan 05 PHP
Views rows style模板重写代码
May 16 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
php使用正则过滤js脚本代码实例
May 10 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
php的4种常见运行方式
Mar 20 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 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 三元运算符实例详细介绍
2016/12/15 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
JS中style属性
2006/10/11 Javascript
为javascript添加String.Format方法
2020/08/11 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
python版简单工厂模式
2017/10/16 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
python默认参数调用方法解析
2020/02/09 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
个人生活学习自我评价范文
2013/11/26 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
2014年计生标语
2014/06/23 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
英语投诉信范文
2015/07/03 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
Redis集群的关闭与重启操作
2021/07/07 Redis
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
详解pytorch创建tensor函数
2022/03/22 Python
python实现双链表
2022/05/25 Python