PHP 获取访客IP的方法途径主要是$_SERVER['REMOTE_ADDR']和HTTP请求头。
需要注意的是从客户端或者代理通过HTTP header发送的IP是不可信的,因为HTTP请求头可以被随意伪造,所以除了$_SERVER['REMOTE_ADDR']相对可靠以外,其他方法都可能存在欺骗。
如果客户端使用代理,$_SERVER['REMOTE_ADDR']获取到的IP是代理IP,而不是终端客户端的IP.
使用代理的客户端,如果代理不发送客户端IP或者故意发送虚假客户端IP,PHP无法取得真实的客户端IP,这不是PHP的问题,其他语言也一样。
PHP获取访客真实IP第一种方法:
- <?php
- $clientIP = $_SERVER['REMOTE_ADDR'];
- echo 'IP: ' . $clientIP;
- ?>
复制代码 PHP获取访客IP第二种方法:
- <?php
- $clientIP = isSet($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : (isSet($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']);
复制代码 将相应的代码保存为PHP文件即可。 |