Home >Backend Development >PHP Tutorial >How to get the real IP address of the client in PHP
This article mainly introduces the method of obtaining the real IP address of the client with PHP. It has certain reference value. Now I share it with you. Friends in need can refer to it
Recommended Manual: php complete self-study manual
REMOTE_ADDR HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR HTTP_VIA
HTTP_CLIENT_IP is the HTTP header sent by the proxy server. If it is a "super anonymous proxy", a value of none is returned. Likewise, REMOTE_ADDR will be replaced with the IP of this proxy server.
$_SERVER['REMOTE_ADDR']; //Accessing end (may be user, may be proxy) IP
$_SERVER['HTTP_CLIENT_IP']; //Agent end ( It may exist and can be forged)
$_SERVER['HTTP_X_FORWARDED_FOR']; //Which IP the user is using as a proxy (It may exist and it can also be forged)
Related Article recommendation:
1.How to get the user’s IP address in php
2.How does php get the client’s IP address?
Related video recommendations:
1.Dugu Jiujian (4)_PHP video tutorial
##Three The value difference is as follows:
1. When no proxy server is used:
REMOTE_ADDR = Your IPHTTP_VIA = No value or not displayed
HTTP_X_FORWARDED_FOR = No value or not displayed
2. When using a transparent proxy server: Transparent Proxies
REMOTE_ADDR = The last proxy server IPHTTP_VIA = Proxy server IP
HTTP_X_FORWARDED_FOR = your real IP. When passing through multiple proxy servers, this value is similar to the following: 203.98.182.163, 203.98.182.163, 203.129.72.215.
3. When using ordinary anonymous proxy servers: Anonymous Proxies
REMOTE_ADDR = Last proxy server IPHTTP_VIA = Proxy server IP
HTTP_X_FORWARDED_FOR = Proxy server IP, when passing through multiple proxy servers, this value is similar to the following: 203.98.182.163, 203.98.182.163, 203.129.72.215.
4. The use of deceptive proxy servers: Distorting Proxies
REMOTE_ADDR = Proxy server IPHTTP_VIA = Proxy server IP
HTTP_X_FORWARDED_FOR = Random IP, when passing through multiple proxy servers, this value is similar to the following: 203.98.182.163, 203.98.182.163, 203.129.72.215.
5. When using a high-anonymity proxy server: High Anonymity Proxies (Elite proxies)
REMOTE_ADDR = Proxy server IPHTTP_VIA = No value or not displayed
HTTP_X_FORWARDED_FOR = No value or not displayed. When passing through multiple proxy servers, this value is similar to the following: 203.98.182.163, 203.98.182.163, 203.129.72.215.
6. Example of obtaining the real IP address of the client:
function get_real_ip() { $ip=FALSE; //客户端IP 或 NONE if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } //多重代理服务器下的客户端真实IP地址(可能伪造),如果没有使用代理,此字段为空 if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } for ($i = 0; $i < count($ips); $i++) { if (!eregi ("^(10│172.16│192.168).", $ips[$i])) { $ip = $ips[$i]; break; } } } //客户端IP 或 (最后一个)代理服务器 IP return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); }The above is the entire content of this article. I hope it will be helpful to everyone's learning. More related content Please pay attention to PHP Chinese website!
php code for compressing and decompressing files
Use the PHP class library PHPqrCode to generate two QR code
The above is the detailed content of How to get the real IP address of the client in PHP. For more information, please follow other related articles on the PHP Chinese website!