ホームページ >バックエンド開発 >PHPチュートリアル >ローカル外部ネットワーク/パブリックネットワークを取得するためのphpコード IP_PHPチュートリアル

ローカル外部ネットワーク/パブリックネットワークを取得するためのphpコード IP_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:38:022203ブラウズ

通常、誰もが $_SERVER['REMOTE_ADDR'] を使用してユーザーの IP を取得します

ただし、リバース プロキシが使用されている場合、HTTP ヘッダーの REMOTE_ADDR はユーザーのアドレスではなく、上位レベルのプロキシのアドレスになります。

調査の結果、ユーザーの実際の外部 IP を取得するには 2 つの方法があります。


方法 1:curl

コードをコピーします コードは次のとおりです:

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



方法 2: $_SERVER['HTTP_X_FORWARDED_FOR'] を使用して、対応するアドレスを取得します

コードをコピーします コードは次のとおりです:
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'), '不明')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], '不明')) {
$onlineip = $_SERVER['REMOTE_ADDR']
}
return $onlineip;


http://www.bkjia.com/PHPjc/321807.html

www.bkjia.com

http://www.bkjia.com/PHPjc/321807.html技術記事通常、ユーザーの IP を取得するには $_SERVER['REMOTE_ADDR'] を使用しますが、リバース プロキシを使用する場合、HTTP ヘッダーの REMOTE_ADDR はユーザーのアドレスではなく、上位プロキシのアドレスになります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。