热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在PHP中准确获取服务器IP地址?

导读:今天编程笔记来给各位分享关于php如何获取服务器ip的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览:1、php怎么获取服务器内网ip?2、PHP如何获取服

导读:今天编程笔记来给各位分享关于php如何获取服务器ip的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:


  • 1、php怎么获取服务器内网ip?


  • 2、PHP如何获取服务器外网IP


  • 3、php到底怎么获取IP地址,为什么三种方法获取的IP都不一样?


  • 4、php 怎么获取内网IP?


  • 5、php 怎么获取服务器端ip地址


  • 6、如何获取PHP客户端及服务器端IP了?

php怎么获取服务器内网ip?

//服务器在局域网的话,那么显示的则是内网IP

$onlineip = $_SERVER['REMOTE_ADDR'];

echo $onlineip;

PHP如何获取服务器外网IP

function real_server_ip(){

static $serverip = NULL;

if ($serverip !== NULL){

return $serverip;

}

if (isset($_SERVER)){

if (isset($_SERVER['SERVER_ADDR'])){

$serverip = $_SERVER['SERVER_ADDR'];

}

else{

$serverip = '0.0.0.0';

}

}

else{

$serverip = getenv('SERVER_ADDR');

}

return $serverip;

}

php到底怎么获取IP地址,为什么三种方法获取的IP都不一样?

php获取真实IP地址,参考方法如下:

function GetIP(){ 

if (getenv("HTTP_CLIENT_IP")  strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) 

$ip = getenv("HTTP_CLIENT_IP"); 

else if (getenv("HTTP_X_FORWARDED_FOR")  strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) 

$ip = getenv("HTTP_X_FORWARDED_FOR"); 

else if (getenv("REMOTE_ADDR")  strcasecmp(getenv("REMOTE_ADDR"), "unknown")) 

$ip = getenv("REMOTE_ADDR"); 

else if (isset($_SERVER['REMOTE_ADDR'])  $_SERVER['REMOTE_ADDR']  strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) 

$ip = $_SERVER['REMOTE_ADDR']; 

else 

$ip = "unknown"; 

return($ip); 

}

php 怎么获取内网IP?

ip地址分 IPv4和IPV6两个版本。

127.0.0.1或者192.168.0.1之类的,属于IPV4的格式

127.0.0.1转换为IPv6就是 ::1

IPv6具体的格式写法,你搜索一下了解一下。

另外 ,服务端获取ip地址,是相对的。比如你在局域网内建一个服务器,在程序里获取的ip地址,就是客户端在局域网的ip  ,一般是类似 192.168.0.101 之类的,大公司的话可能  10.x.x.x

局域网的ip地址,可以直接在网络适配器上看到

而在inter网,也就是大网络上,服务端获取的ip地址,是你的连网设备获取到的公网ip ,一般一个局域网内的主机,相对于因特网上的服务器,显示的都是公网地址。

公网ip没有在本机电脑上直接显示。会显示在路由或者连网设备上。也可以通过百度搜索 ip地址,会显示你的公网ip

所以,假设一个局域网内,有两台电脑同时访问一个网上的服务器,服务器是没办法给两台电脑区分开ip地址的,显示的是一样的。只是可能得到的设备信息不一样(如:浏览器的useragent)

php 怎么获取服务器端ip地址

?php

function getIp()

{

    $IPaddress='';

    if (isset($_SERVER)){

        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

            $IPaddress = $_SERVER["HTTP_X_FORWARDED_FOR"];

        } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {

            $IPaddress = $_SERVER["HTTP_CLIENT_IP"];

        } else {

            $IPaddress = $_SERVER["REMOTE_ADDR"];

        }

    } else {

        if (getenv("HTTP_X_FORWARDED_FOR")){

            $IPaddress = getenv("HTTP_X_FORWARDED_FOR");

        } else if (getenv("HTTP_CLIENT_IP")) {

            $IPaddress = getenv("HTTP_CLIENT_IP");

        } else {

            $IPaddress = getenv("REMOTE_ADDR");

        }

    }

    return $IPaddress;

}

echo getIp();//就可以输出用户的IP地址。

?

获取服务器端ip地址

?php

function serverIp(){    

    if(isset($_SERVER)){    

        if($_SERVER['SERVER_ADDR']){    

 $server_ip=$_SERVER['SERVER_ADDR'];    

            }else{    

               $server_ip=$_SERVER['LOCAL_ADDR'];    

           }    

      }else{    

          $server_ip = getenv('SERVER_ADDR');    

    }    

      return $server_ip;    

   }    

        

 echo serverIp();   

 ?

此方法在本地不可用。需要上传至服务器

如果在本地使用此方法   打印出来的是127.0.0.1

希望对你有帮助

如何获取PHP客户端及服务器端IP了?

客户端的ip变量:

$_SERVER['REMOTE_ADDR'] :客户端IP,也有可能是代理IP

$_SERVER['HTTP_CLIENT_IP']:代理端的IP,可能存在,也可能伪造

$_SERVER['HTTP_X_FORWARD_FOR'] :用户在哪个ip上使用的id,可能存在,也可能伪造

服务端的ip变量:

$_SERVER['SERVER_NAME'] :需要使用函数gethostname()来获得,这个无论是服务器端还是客户端都能正常显示。

$_SERVER['SERVER_ADDR']:服务器端的ip地址,在服务器端测试ip地址,在客户端测试正常

getnev 获得系统的环境变量:

结语:以上就是编程笔记为大家整理的关于php如何获取服务器ip的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~


推荐阅读
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 出库管理 | 零件设计中的状态模式学习心得与应用分析
    出库管理 | 零件设计中的状态模式学习心得与应用分析 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 在分析Android的Audio系统时,我们对mpAudioPolicy->get_input进行了详细探讨,发现其背后涉及的机制相当复杂。本文将详细介绍这一过程及其背后的实现细节。 ... [详细]
  • 本题探讨如何编写程序来计算一个数值的整数次方,涉及多种情况的处理。 ... [详细]
  • 2022年7月20日:关键数据与市场动态分析
    2022年7月20日,本文对当日的关键数据和市场动态进行了深入分析。主要内容包括:1. 关键数据的解读与趋势分析;2. 市场动态的变化及其对投资策略的影响;3. 相关经济指标的评估。通过这些分析,帮助读者更好地理解当前市场环境,为决策提供参考。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • ThinkPHP模板中函数调用的开发技巧与实践 ... [详细]
author-avatar
橙色kop
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有