首页技术php获取客户端ip(怎么获取对端ip地址)

php获取客户端ip(怎么获取对端ip地址)

编程之家2026-06-291188次浏览

很多朋友对于php获取客户端ip和怎么获取对端ip地址不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

php获取客户端ip(怎么获取对端ip地址)

PHP如何获取客户端真实IP

如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面。

下面提供一个函数:<?php

//定义一个函数getIP()

function getIP(){global$ip;

if(getenv("HTTP_CLIENT_IP"))

$ip= getenv("HTTP_CLIENT_IP");

php获取客户端ip(怎么获取对端ip地址)

else if(getenv("HTTP_X_FORWARDED_FOR"))

$ip= getenv("HTTP_X_FORWARDED_FOR");

else if(getenv("REMOTE_ADDR"))

$ip= getenv("REMOTE_ADDR");else$ip="Unknow";

return$ip;}

//使用方法:

php获取客户端ip(怎么获取对端ip地址)

echo getIP();?>

getenv("REMOTE_ADDR")用来取得客户端的 IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP地址,而不是真正的客户端 IP地址。要想透过代理服务器取得客户端的真实 IP地址,就要使用 getenv("HTTP_X_FORWARDED_FOR")来读取。

但是如果客户端没有通过代理服务器来访问,那么用getenv("HTTP_X_FORWARDED_FOR")取到的值将是空的。

else if(getenv("HTTP_X_FORWARDED_FOR"))

$ip= getenv("HTTP_X_FORWARDED_FOR");

表示如果getenv("HTTP_X_FORWARDED_FOR")取到的值存在不为空(即客户端使用代理服务器的情况下),则变量$ip等于getenv("HTTP_X_FORWARDED_FOR")取到的真实IP值。

如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值为空(即没有使用代理服务器),则不会执行下面的$ip= getenv("HTTP_X_FORWARDED_FOR");这一行语句。

这种情况下已经确认客户端没有使用代理服务器,从而通过

else if(getenv("REMOTE_ADDR"))

这两行语句获得客户端的IP地址也是真实的IP地址。

如何使用PHP获取客户端及服务器端IP的封装类

本文实例讲述了PHP获取客户端及服务器端IP的封装类。分享给大家供大家参考,具体如下:

客户端IP相关的变量:

1.$_SERVER['REMOTE_ADDR'];客户端IP,有可能是用户的IP,也有可能是代理的IP。

2.$_SERVER['HTTP_CLIENT_IP'];代理端的IP,可能存在,可伪造。

3.$_SERVER['HTTP_X_FORWARDED_FOR'];用户是在哪个IP使用的代理,可能存在,可以伪造。

服务器端IP相关的变量:

1.$_SERVER["SERVER_NAME"],需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。

2.$_SERVER["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。

类如下:

class getIP{

function clientIP(){

$cIP= getenv('REMOTE_ADDR');

$cIP1= getenv('HTTP_X_FORWARDED_FOR');

$cIP2= getenv('HTTP_CLIENT_IP');

$cIP1?$cIP=$cIP1: null;

$cIP2?$cIP=$cIP2: null;

return$cIP;

}

function serverIP(){

return gethostbyname($_SERVER["SERVER_NAME"]);

}

}

$getIP= new getIP();

$clientIp= getIP::clientIP();

$serverIp= getIP::serverIP();

echo'Client IP is',$clientIp,'<br/>';

echo'Server IP is',$serverIp,'<br/>';

php获取IP地址的三个函数区别

以下资料供参考:

1、REMOTE_ADDR浏览当前页面的用户计算机的ip地址

2、HTTP_X_FORWARDED_FOR浏览当前页面的用户计算机的网关

3.HTTP_CLIENT_IP客户端的ip

在PHP中使用 REMOTE_ADDR来取得客户端的 IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP地址,而不是真正的客户端 IP地址。

要想透过代理服务器取得客户端的真实 IP地址,就要使用 HTTP_X_FORWARDED_FOR来读取。

不过要注意的事,并不是每个代理服务器都能用 HTTP_X_FORWARDED_FOR来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。

还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么HTTP_X_FORWARDED_FOR取到的值将是空的。

关于php获取客户端ip到此分享完毕,希望能帮助到您。

前端学到什么程度可以找到工作,学前端好找工作吗数学sin公式表三角函数(sin公式大全表格)