不知大家有无注意到,在 BAE 上运行的 WordPress,获取到的评论 IP 都是 BAE 的内网 IP,而不是真正的访客 IP。
那么真正的访客 IP 在哪里呢?根据 BAE 官方的解答,真正的访客 IP 在 HTTP_X_FORWARDED_FOR 中,但是由于 BAE 的特殊性,所以代码与安全宝获取真实 IP 的代码略有不同,但依旧是放在主题的 Functions.php 中。
代码如下:
<?php
add_action('init', 'GetIP');
function GetIP() {
$IP = str_replace(", ", "", str_replace(getenv('REMOTE_ADDR'), "", getenv('HTTP_X_FORWARDED_FOR')));
if (false === getenv('HTTP_X_FORWARDED_FOR')) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];
} else {
$_SERVER['REMOTE_ADDR'] = $IP;
}
}
?>
为什么我觉得用个BAE麻烦这么多。。
习惯了就好,BAE 也有它的好处。
同样的关键字,用百度搜不到这里,用谷歌就让我找到了解决方案~ 谢
正常的,技术问题谷歌比百度好用多了。