簡體   English   中英

獲取geolock的用戶IP地址(不是192.168地址)

[英]Get user ip address for geolock (not 192.168 address)

我geo鎖定我們的程序,我們有一個服務,為我們返回國家代碼。 但如果有人在路由器后面,他們有一個本地192.168.xx地址,這沒告訴我什么。 有沒有辦法在路由器上找到他們的地址? 我可以做一個跟蹤,但后來我需要自己編程邏輯關於哪個ip是有用的,哪些不是。 我正在從php中的服務器執行此代碼,我們的客戶端Web應用程序是在javascript中。 請指教。

謝謝

function get_real_ip() {

    if (!empty($_SERVER['HTTP_X_FORWARED_FOR']))
    {
        $client_ip = $_SERVER['HTTP_X_FORWARED_FOR'];
    }
    elseif (!empty($_SERVER['HTTP_CLIENT_IP']))
    {
        $client_ip = $_SERVER['HTTP_CLIENT_IP'];
    }
    else
    {
        $client_ip = $_SERVER['REMOTE_ADDR'];
    }
    return $client_ip;
}

對於基於服務器的軟件,PHP變量$ _SERVER ['REMOTE_ADDR']將給出客戶端的地址。 對於路由器后面的客戶端,其地址將由路由器固件轉換,因此服務器將看到路由器的公共IP地址,而不是客戶端的本地私有地址。

所有這一切都被可能存在的干預代理服務器所困擾,這些代理服務器可能會或可能不會告訴您他們的客戶端地址是什么。 你可以查看$ _SERVER ['HTTP_X_FORWRDED_FOR']或$ _SERVER ['HTTP_CLIENT_IP'],如果它們存在的話。 如果沒有,您將不得不使用代理地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM