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

php 怎么获取服务器端ip地址,第1张

<?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

希望对你有帮助

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)


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/196398.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存