在PHP中获取引用站点的IP地址


Get referring site IP address in PHP

我想为我的SaaS产品实现一个推荐计划。

合作伙伴将在他们的网站上有一个链接,将他们的用户引导到我的注册表单:

domain.com/referral/201030

"201030"为来自合作伙伴站点的成员id。

我想确保页面请求来自我的合作伙伴网站,

我知道我可以检查$_SERVER['HTTP_REFERER'],但这是不安全的。

有一种方法,我可以检查网站的IP地址,指用户到我的网页与PHP?

什么时候需要高安全性?

以API为例,您希望跟踪传入的流量,并确保只有经过身份验证的客户端才能访问该API。这需要更高的安全标准以及公钥和秘密的交换。

当不?

推荐程序不需要这种安全性。

你拥有的流量越多,对你越好。你不关心的引子来自哪里。当我通过信使发送我的合作伙伴程序链接给某人时,甚至没有HTTP_REFERER。

这可能吗?

如果没有服务器端交互、混淆和动态链接,很难确定用户来自哪里。

任何机会吗?

使用静态链接的唯一方法是$_SERVER['HTTP_REFERER']。你现在可以给答案点赞,但这并不能改变一个事实,那就是没有办法,就像问题中显示的那样,用一个简单的、非动态的链接。

将引用对象转换为IP

将HTTP_REFERER转换为IP:

$urlParts = parse_url($_SERVER['HTTP_REFERER']);
$ip       = gethostbyname($urlParts['host']);

请记住,这既不可靠也不安全。