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 の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。