不知大家有无注意到,在 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 也有它的好处。
同样的关键字,用百度搜不到这里,用谷歌就让我找到了解决方案~ 谢
正常的,技术问题谷歌比百度好用多了。