PHP 獲取客戶端 IP 地址的方法實例代碼
先來了解一個變量的含義:
$_SERVER['REMOTE_ADDR']:瀏覽當前頁面的用戶計算機的ip地址
$_SERVER['HTTP_CLIENT_IP']:客戶端的ip
$_SERVER['HTTP_X_FORWARDED_FOR']:瀏覽當前頁面的用戶計算機的網(wǎng)關(guān)
$_SERVER['HTTP_X_REAL_IP']:nginx 代理模式下,獲取客戶端真實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 地址的方法實例代碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關(guān)文章
PHP in_array()函數(shù)基本語法及嚴格比較使用實例
PHP是一種常用的服務器端腳本語言,提供了豐富的內(nèi)置函數(shù)來簡化開發(fā)過程,其中,in_array()函數(shù)是一種非常有用的函數(shù),用于判斷數(shù)組中是否存在指定的值,本文將詳細介紹in_array()函數(shù)的用法,并提供具體的代碼示例2024-01-01
thinkphp5使html5實現(xiàn)動態(tài)跳轉(zhuǎn)的例子
今天小編就為大家分享一篇thinkphp5使html5實現(xiàn)動態(tài)跳轉(zhuǎn)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
淺談laravel 5.6 安裝 windows上使用composer的安裝過程
今天小編就為大家分享一篇淺談laravel 5.6 安裝 windows上使用composer的安裝過程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
Yii框架使用PHPExcel導出Excel文件的方法分析【改進版】
這篇文章主要介紹了Yii框架使用PHPExcel導出Excel文件的方法,結(jié)合實例形式分析了Yii框架配置、導入PHPExcel組件以及調(diào)用PHPExcel導出Excel文件的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07

