2019-04-23 13:53:51 3012瀏覽
本篇文章扣丁學(xué)堂PHP培訓(xùn)小編給讀者們分享一下PHP獲取客戶端IP地址的方法,文中有代碼列出供大家參考,對(duì)PHP開發(fā)技術(shù)感興趣的小伙伴就隨小編來了解一下吧。
先來了解一個(gè)變量的含義:
$_SERVER['REMOTE_ADDR']:瀏覽當(dāng)前頁面的用戶計(jì)算機(jī)的ip地址
$_SERVER['HTTP_CLIENT_IP']:客戶端的ip
$_SERVER['HTTP_X_FORWARDED_FOR']:瀏覽當(dāng)前頁面的用戶計(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;
}
以上就是扣丁學(xué)堂PHP在線學(xué)習(xí)小編給大家分享的PHP獲取客戶端IP地址的方法,希望對(duì)小伙伴們有所幫助,想要了解更多內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)咨詢。
想要學(xué)好PHP開發(fā)小編給大家推薦口碑良好的扣丁學(xué)堂,扣丁學(xué)堂有專業(yè)老師制定的PHP學(xué)習(xí)路線圖輔助學(xué)員學(xué)習(xí),此外還有與時(shí)俱進(jìn)的PHP課程體系和PHP視頻教程供大家學(xué)習(xí),想要學(xué)好PHP開發(fā)技術(shù)的小伙伴快快行動(dòng)吧??鄱W(xué)堂PHP技術(shù)交流群:374332265。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】 【掃碼進(jìn)入Python全棧開發(fā)免費(fèi)公開課】
查看更多關(guān)于“php培訓(xùn)資訊”的相關(guān)文章>>