PHP 獲取客戶端 IP 地址的方法實(shí)例代碼
先來(lái)了解一個(gè)變量的含義:
$_SERVER['REMOTE_ADDR']:瀏覽當(dāng)前頁(yè)面的用戶計(jì)算機(jī)的ip地址
$_SERVER['HTTP_CLIENT_IP']:客戶端的ip
$_SERVER['HTTP_X_FORWARDED_FOR']:瀏覽當(dāng)前頁(yè)面的用戶計(jì)算機(jī)的網(wǎng)關(guān)
$_SERVER['HTTP_X_REAL_IP']:nginx 代理模式下,獲取客戶端真實(shí)IP
/**
* 獲取客戶端IP地址
*/
function real_ip()
{
$ip = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
foreach ($matches[0] AS $xip) {
if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
$ip = $xip;
break;
}
}
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) {
$ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
} elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) {
$ip = $_SERVER['HTTP_X_REAL_IP'];
}
return $ip;
}
總結(jié)
以上所述是小編給大家介紹的PHP 獲取客戶端 IP 地址的方法實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
Yii框架參數(shù)配置文件params用法實(shí)例分析
這篇文章主要介紹了Yii框架參數(shù)配置文件params用法,結(jié)合實(shí)例形式分析了Yii框架參數(shù)配置文件params相關(guān)設(shè)置、調(diào)用、加載等操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-09-09
Laravel5.1框架注冊(cè)中間件的三種場(chǎng)景詳解
這篇文章主要介紹了Laravel5.1框架注冊(cè)中間件的三種場(chǎng)景,結(jié)合實(shí)例形式詳細(xì)分析了Laravel5.1框架控制器中的方法進(jìn)行注冊(cè)、給整個(gè)控制器進(jìn)行注冊(cè)以及給全局注冊(cè)中間件三種應(yīng)用場(chǎng)景,需要的朋友可以參考下2019-07-07
PHP in_array()函數(shù)基本語(yǔ)法及嚴(yán)格比較使用實(shí)例
PHP是一種常用的服務(wù)器端腳本語(yǔ)言,提供了豐富的內(nèi)置函數(shù)來(lái)簡(jiǎn)化開發(fā)過(guò)程,其中,in_array()函數(shù)是一種非常有用的函數(shù),用于判斷數(shù)組中是否存在指定的值,本文將詳細(xì)介紹in_array()函數(shù)的用法,并提供具體的代碼示例2024-01-01
thinkphp5使html5實(shí)現(xiàn)動(dòng)態(tài)跳轉(zhuǎn)的例子
今天小編就為大家分享一篇thinkphp5使html5實(shí)現(xiàn)動(dòng)態(tài)跳轉(zhuǎn)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
淺談laravel 5.6 安裝 windows上使用composer的安裝過(guò)程
今天小編就為大家分享一篇淺談laravel 5.6 安裝 windows上使用composer的安裝過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
Yii框架使用PHPExcel導(dǎo)出Excel文件的方法分析【改進(jìn)版】
這篇文章主要介紹了Yii框架使用PHPExcel導(dǎo)出Excel文件的方法,結(jié)合實(shí)例形式分析了Yii框架配置、導(dǎo)入PHPExcel組件以及調(diào)用PHPExcel導(dǎo)出Excel文件的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07

