PHP 獲取客戶端 IP 地址的方法實例代碼
先來了解一個變量的含義:
$_SERVER['REMOTE_ADDR']:瀏覽當(dāng)前頁面的用戶計算機的ip地址
$_SERVER['HTTP_CLIENT_IP']:客戶端的ip
$_SERVER['HTTP_X_FORWARDED_FOR']:瀏覽當(dāng)前頁面的用戶計算機的網(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 地址的方法實例代碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
php htmlentities()函數(shù)的定義和用法
下面小編就為大家?guī)硪黄猵hp htmlentities()函數(shù)的定義和用法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05
用php實現(xiàn)百度網(wǎng)盤圖片直鏈的代碼分享
華為網(wǎng)盤有個直鏈功能,不過需要錢買。我有百度網(wǎng)盤,不過百度的網(wǎng)盤外鏈不能在網(wǎng)頁里直接使用圖片 華為的直鏈功能可以做到。百度哪天也能有這功能就好了。2012-11-11
Yii2 GridView實現(xiàn)列表頁直接修改數(shù)據(jù)的方法
這篇文章主要介紹了Yii2 GridView實現(xiàn)列表頁直接修改數(shù)據(jù)的方法的相關(guān)資料,小編認為非常具有參考價值,特此分享到腳本之家平臺,需要的朋友可以參考下2016-05-05
PHPMailer ThinkPHP實現(xiàn)自動發(fā)送郵件功能
這篇文章主要為大家詳細介紹了PHPMailer ThinkPHP實現(xiàn)自動發(fā)送郵件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06

