以前大家會這樣經 PHP獲得用戶IP

function getIp(){
    return $_SERVER['REMOTE_ADDR'];
}

你使用了CloudFlare後

現在很多人都會用CloudFlare等CDN的服務,除了安全還能節省流量及加速。

當你用了CloudFlare後流量會被CloudFlare進行了cache,你直接獲取Ih後會得到不是用戶真實的IP

想分析流量大家一般都把這些工作交給Google Analytics 等等,所以他們會幫你分析,但如果你想保存去數據庫之類的,就要自己去嘗試

以下代碼可幫你獲取真實IP

function getIp() {
    if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
        $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
    }
    return $_SERVER['REMOTE_ADDR'];
}

如何用戶用了VPN?

這樣就只能獲取到你用戶的VPN供應商提供的IP