Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP实现获取客户端及服务器端IP的封装类

PHP实现获取客户端及服务器端IP的封装类

墨辰丷
墨辰丷asal
2018-06-01 16:46:382214semak imbas

这篇文章主要介绍了PHP获取客户端及服务器端IP的封装类,简单分析了php使用服务器预定义变量的基本用法并进行了简单封装,需要的朋友可以参考下

具体如下:

客户端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 &#39;Client IP is &#39;,$clientIp,&#39;<br />&#39;;
echo &#39;Server IP is &#39;,$serverIp,&#39;<br />&#39;;

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

PHP符合PSR编程规范的实例

php curl 模拟登录并获取数据实例

php的4种常用运行方式详解

Atas ialah kandungan terperinci PHP实现获取客户端及服务器端IP的封装类. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn