Home > Backend Development > PHP Tutorial > PHP code to obtain local network/public network IP_PHP tutorial

PHP code to obtain local network/public network IP_PHP tutorial

WBOY
Release: 2016-07-21 15:38:02
Original
2223 people have browsed it

Everyone usually uses $_SERVER['REMOTE_ADDR'] to obtain the user's IP.

But if a reverse proxy is used, the REMOTE_ADDR in the HTTP header is not the user's address, but the address of the upper-level proxy. .

After my research, there are two methods to obtain the user’s real external IP.


Method 1: curl

Copy code The code is as follows:

function get_onlineip() {
$ch = curl_init('http://www.ip138.com/ip2city.asp');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a = curl_exec($ch);
preg_match('/[(.*)]/', $a, $ip);
return $ip[1];
}



Method 2: $_SERVER['HTTP_X_FORWARDED_FOR'] to get the corresponding address
Copy the code The code is as follows:

function get_onlineip() {
$onlineip = '';
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP ');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif( getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR'] ) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip ;
}

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/321807.htmlTechArticleWe generally use $_SERVER['REMOTE_ADDR'] to obtain the user IP, but if a reverse proxy is used Yes, REMOTE_ADDR in the HTTP header is not the user's address, but the address of the upper-level proxy...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template