ホームページ >バックエンド開発 >PHPチュートリアル >phpはローカルの実際のIPを取得します

phpはローカルの実際のIPを取得します

WBOY
WBOYオリジナル
2016-06-13 13:10:00799ブラウズ

php获取本地实际IP

? function real_ip()
{
??? static $realip = NULL;

? if ($realip !== NULL)
??? {
??????? $realip を返します;
??? }

? if (isset($_SERVER))
??? {
??????? if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
??????? {
???????????? $arr =explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

???????????? foreach ($arr AS $ip)
????????????? {
??????????????? $ip = トリム($ip);

??????????????? if ($ip != 'unknown')
??????????????? {
?????????????????? $realip = $ip;

??????????????????休憩;
??????????????? }
???????????? }
??????? }
??????? elseif (isset($_SERVER['HTTP_CLIENT_IP']))
??????? {
???????????? $realip = $_SERVER['HTTP_CLIENT_IP'];
??????? }
???????他
????????? {
???????????? if (isset($_SERVER['REMOTE_ADDR']))
???????????? {
??????????????? $realip = $_SERVER['REMOTE_ADDR'];
???????????? }
????????????他
???????????? {
??????????????? $realip = '0.0.0.0';
???????????? }
??????? }
??? }
???他
??? {
??????? if (getenv('HTTP_X_FORWARDED_FOR'))
??????? {
???????????? $realip = getenv('HTTP_X_FORWARDED_FOR');
??????? }
??????? elseif (getenv('HTTP_CLIENT_IP'))
????????? {
???????????? $realip = getenv('HTTP_CLIENT_IP');
????????? }
???????他
????????? {
???????????? $realip = getenv('REMOTE_ADDR');
????????? }
??? }

? preg_match("/[d.]{7,15}/", $realip, $onlineip);
??? $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';

? return $realip;
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。