WordPress 在 BAE 上如何获得访客的真实IP

不知大家有无注意到,在 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;
	}
}
?>

此文章是由nikbobo发表在旧博客分类目录的。将固定链接加入收藏夹。

关于 nikbobo

Nikbobo,本名刘永强,记忆空间站长,男,1998 年出生于广东茂名,至今(2022 年)23 岁,目前(2022 年)就读于广州大学华软软件学院,常以“nikbobo”这个网名混迹互联网。如无特殊注明,Nikbobo 在本站发表的文章,遵循 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议。详情请参阅关于页面的作者介绍。

WordPress 在 BAE 上如何获得访客的真实IP》上有4个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注