本篇文章主要介绍PHP 获取ip地址的六种方法,感兴趣的朋友参考下,希望对大家有所帮助。

代码一: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 获取 ip地址_PHP 获取ip地址的六种方法相关推荐

  1. “超全” Python获取某一日期是“星期几”的六种方法

    在Python进行数据分析时,按照日期进行分组汇总也是被需要的,比如会找到销量的周期性规律. 那么在用Python进行数据统计之前,就需要额外增加一步:从指定的日期当中获取星期几.比如2022年2月2 ...

  2. php获取所有url地址_php 获取完整url地址

    php 获取完整url地址 主要是获取到地址栏的一些信息,域名,端口参数等 复制代码 代码如下: //获取域名或主机地址 echo $_SERVER['HTTP_HOST']." " ...

  3. php获取所有url地址_php 获取完整url地址实例详解

    例1,获取到地址栏的一些信息,域名,端口参数等. 复制代码 代码示例: //获取域名或主机地址 echo $_SERVER['HTTP_HOST']." "; //获取网页地址 e ...

  4. vb.net 判断是否为ip 正则_PHP实现IP白名单

    有些项目可能会用到一个IP地址的白名单黑名单之类的验证. 比如,只有IP地址在白名单中,才可以访问该系统. 那么此时,白名单的维护,一般是一个文件,里边是一些IP地址(每行一个IP),当然也有的可能是 ...

  5. php获取总共内存_php获取页面运行使用内存的两个函数

    原来php也是可以获取内存的,比如我们这个页面运行下来花了多少内存,都是可以用memory_get_usage()函数来读取出来的.那么,以后我们可以用这个函数方便的判断咱们写的程序优化度高不高,因为 ...

  6. php 获取上周日期_php 获取今日、昨日、上周、本月的起始时间戳和结束时间

    1.php获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,date('m'),date('d'),date('Y'));$endToday=mktime(0,date('d' ...

  7. mysql 获取操作系统信息_php获取服务器操作系统相关信息的方法

    这篇文章主要介绍了php获取服务器操作系统相关信息的方法,涉及php针对服务器端预定义变量及系统函数的使用技巧,需要的朋友可以参考下 本文实例讲述了php获取服务器操作系统相关信息的方法.分享给大家供 ...

  8. php 获取上周日期_php 获取上一周下一周的日期列表

    /** * 获取某天的一周日期 * @date 2021-01-08 * @version 1.0 * @param string $time [日期] * @param string $format ...

  9. php获取总共内存_PHP获取内存使用情况详解

    本篇将详解php获取内存使用情况. PHP内置函数memory_get_usage()能返回当前分配给PHP脚本的内存量,单位是字节(byte).在WEB实际开发中,这些函数非常有用,我们可以使用它来 ...

最新文章

  1. sql 只取一条记录_后端程序员必备:书写高质量SQL的30条建议
  2. php list 转tree,PHP 数组转树形结构
  3. ethz研究生申请官网
  4. 《Android游戏开发详解》一导读
  5. 教你写Bug,常见的 OOM 异常分析
  6. 深度学习attention原理_深度学习Anchor Boxes原理与实战技术
  7. java web不用框架_初学javaweb,远离各自框架
  8. 秘笈——掌控时间管理的工具
  9. linux如何搜全部文件含有字符串,Linux下查找目录中全部文件中含有某个字符串,而且只打印出文件名...
  10. 为Android购买多个改装微信,从制作一个“微信多开版”看微信安全
  11. 小卡机器人积木教程_全新小卡智能电动积木,56种玩法,可拼搭28款造型
  12. unity3d摄像机的透视有些夸张怎么办?
  13. 武昌理工学院计算机巧业怎样,最潮高校宿管员巧念育人经 做学生们的“知心大姐”...
  14. 0xc0000005 系统应用日志_0xc0000005,小编教你怎么解决应用程序正常初始化0xc0000005失败...
  15. 微软自带输入法输入时英文的间距突然变大
  16. 什么OKR,分明是中华田园KPI
  17. 螣龙安科:在线协作平台的安全建议
  18. 用计算机画磁化曲线方法,试验铁磁材料的静态磁化曲线测量试验目的学习用电子积分.DOC...
  19. STM32工作笔记007---认识OLED屏和LCD屏的区别
  20. 全志a33核心板方案应用

热门文章

  1. 冒险岛服务器维护,冒险岛官方网站(MapleStory)-爱我就来冒险吧!
  2. python编码尺寸_基于Python批量生成指定尺寸缩略图代码实例
  3. 瑞芯微开源_微包和开源信任扩展
  4. VHDL优秀电子书籍分享
  5. 语音识别技术对比分析
  6. Java的double向上/下取整
  7. 游离在漩涡外的第五年
  8. 前端控制 隐藏手机号码中间四位
  9. android学习笔记——viewPager(适配器、常用函数、监听器、切换动画)
  10. 3D模型欣赏:武侠风美女【3D游戏建模教程】