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

解決步驟
用編輯器打開 include/lib/function.base.php,在第 60 行左右可以找到以下程式碼:
PHP PHP
function getIp() {
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
if (!ip2long($ip)) {
$ip = '';
}
return $ip;
}
修改為以下程式碼:
PHP 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)暫無評論,來說兩句吧