EmlogでCDNを有効にすると実際のIPアドレスを取得できない問題を解決する

3,896 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)

まだコメントはありません

コメントを投稿

憂いを忘れる一枚

「憂いを忘れる一枚」は、技術探究と日々の暮らしをテーマにした個人サイトです。Web 開発、バックエンド、DevOps の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。

© 2026 憂いを忘れる一枚. 無断転載を禁じます.