小幻最近評論被人透過多說和 WP 的評論介面 POST 攻擊評論了,可以 WordPress 的防住了,多說的卻沒有任何頭緒。於是一氣之下直接關掉了多說。無聊又新增了 UA 顯示 (多說原因,以前的都出了問題) 、郵件提醒這些功能。

可是每次傳送的時候都感覺不對勁,給我發過來的 E-mail 顯示的 IP 都是一個 IP,看了下,發現原來……都是一個 IP 地址。仔細一想,原來是我的 CDN 的問題。

只是簡單的這個還沒有事情,只是,WordPress 內有評論 IP 攔截等等這些功能,不能都攔截了。

百度一下,發現了一個好的方法。只要新增一段程式碼,IP 地址就可以正常了,其實 CDN 在頭部應該有把訪問者 IP 傳送的,那段程式碼就是把 WordPress 的 ip 中變數換成 $_SERVER 獲取的。這個可以用在任意 CDN 和反代裡面,IP 地址可以獲取正確的,但是如果你想我的對方用過 VPN 、代理、 ss……後的本機原始 IP 可以使用 js 獲取,這個以後會有介紹的。

好了嘮叨了那麼多,還是上點乾貨吧。

在 WordPress 安裝根目錄下面 wp-config.php 檔案,開啟後,在其內新增下面程式碼:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  $_SERVER['REMOTE_ADDR'] = $list[0];
}

再用 SS,發了個評論,看了下 IP 地址,換成了 VPS 的地址了,當然我的 IP 識別也正常了!

再次慶祝一下自己咯,雖說備案好了,搜尋引擎還一直沒恢復,不過 IP 卻已經過百了,不錯了。