Emlog 開啟 CDN 無法取得真實 IP

3,864 0

前幾天我寫了一篇關於「解決 WP 開 CDN 無法取得真實 IP」的文章,今天碰巧看到有人在群組裡求助,他使用的是 Emlog 程式,也遇到了相同的情況(開啟 CDN 之後無法取得真實 IP),於是我就想著把 WordPress 的解決方案放到 Emlog 上面去試一試,結果還真的可以,下面就分享一下過程給小夥伴們參考一下,說不定還能在其他程式上面解決問題呢。

解決步驟

用編輯器開啟 include/lib/function.base.php,在第 60 行左右能找到以下的程式碼:

PHP
function getIp() {
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
        if (!ip2long($ip)) {
            $ip = '';
        }
        return $ip;
}

修改為以下程式碼:

PHP
function getIp() {
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
        $list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        $ip = $list[0]; 
    } 
    if (!ip2long($ip)) {
        $ip = '';
    } 
    return $ip;
}

注意

以上程式碼只在 Emlog 5.3.1 版本上測試過,其他版本請自行測試(理論上可行)。

評論

(0)

暫無評論,來說兩句吧

發佈評論

© 2026 一紙忘憂. 保留所有權利.

一紙忘憂的個人網站,關於技術探索與日常生活,記錄 Web 開發、後端與 DevOps 實踐,分享軟體工具、數位體驗,以及程式碼之外的見聞與思考。