使用Cloudflare后Outsystems获取客户端真实IP地址

今天遇到一个问题,就是使用Cloudflare后Outsystems获取客户端真实IP地址的问题,是这样的,当使用Outsystems开发的项目部署到Microsoft Azure后,并且套了CDN,当然就是Cloudflare啦

今天遇到一个问题,就是使用Cloudflare后Outsystems获取客户端真实IP地址的问题,是这样的,当使用Outsystems开发的项目部署到Microsoft Azure后,并且套了CDN,当然就是Cloudflare啦,调用GetIP这个action被发现总是拿到的是同一个地址,于是排查后就有了本文了。

使用Cloudflare后Outsystems获取客户端真实IP地址

OutSystems使用Cloudflare后如何获取真实IP?当我们将OutSystems开发的Web项目部署到服务器并使用Cloudflare时,如果我们想获取客户端的真实IP地址,我们不能简单地调用HTTPRequestHandler提供的GetIP动作。如果你这样做,你将得到的只是一个Cloudflare代理地址。

使用Cloudflare后Outsystems获取客户端真实IP地址

OutSystems使用Cloudflare后如何获取真实IP

正是因为我们使用了Cloudflare,所以无法通过直接调用GetIP动作来获取真实的IP地址。关于这方面,Cloudflare社区中有关于这方面的讨论,我们可以在这里查看

所有与 Cloudflare 的 HTTP 连接都会在标头中返回访客 IP 地址:
X-Forwarded-For 标头
CF-Connecting-IP 标头

了解了以上原因之后,剩下的就很简单了。我们只需要调用 GetRequestHeader 来获取对应的 Header,这样我们就可以获取到客户端的真实 IP 地址

使用Cloudflare后Outsystems获取客户端真实IP地址 1

使用 Cloudflare 时,您的服务器看到的 IP 地址是 Cloudflare 代理的 IP,而不是发出请求的客户端的真实 IP。要在 OutSystems 应用程序中获取真实的客户端 IP,您可以从 Cloudflare 设置的 HTTP 标头中检索它。Cloudflare 通常会在标头中发送真实的 IP 地址。CF-Connecting-IP

以下是在OutSystems中执行此操作的方法:

在OutSystems中检索真实客户端IP的步骤:

  1. 访问请求标头
  • 在 OutSystems 中,您可以使用模块中的操作来访问请求标头。GetRequestHeaderHTTPRequestHandler
  • 使用操作获取标头的值。CF-Connecting-IP
  1. 设置逻辑以提取 IP
  • 创建一个服务器操作,该操作作为标头名称调用和传递。GetRequestHeader"CF-Connecting-IP"
  • 此操作的输出将是客户端的真实 IP 地址。

示例实现:

  1. 添加服务器操作
  • 创建新的服务器操作,例如 .GetClientIP
  • 在此操作中,使用模块中的操作。GetRequestHeaderHTTPRequestHandler
  1. 配置 GetRequestHeader
  • 将输入参数设置为 。HeaderName"CF-Connecting-IP"
  1. 返回 IP
  • 的输出将是客户端的真实 IP 地址。将此设置为操作的输出。GetRequestHeaderGetClientIP

示例代码:

HeaderName =“CF-Connecting-IP”
ClientIP = HTTPRequestHandler。GetRequestHeader(HeaderName)

OutSystems使用Cloudflare后如何获取真实IP?

其它注意事项:

  • 如果您的应用程序前面有多个代理或层,则可能需要检查其他标头,例如 addition 。X-Forwarded-ForCF-Connecting-IP

调试:

  • 确保 Cloudflare 已配置为发送此标头。
  • 测试您的应用程序以确保返回正确的 IP,尤其是在您位于多个代理后面时。

通过执行这些步骤,您的 OutSystems 应用程序将能够检索真实的客户端 IP 地址,即使在 Cloudflare 后面也是如此。

加入电报群

【江湖人士】(jhrs.com)原创文章,作者:江小编,如若转载,请注明出处:https://jhrs.com/2024/49633.html

扫码加入电报群,让你获得国外网赚一手信息。

文章标题:使用Cloudflare后Outsystems获取客户端真实IP地址

(0)
江小编的头像江小编
上一篇 2024-08-05 12:05
下一篇 2024-08-12 23:45

热门推荐

Leave a Reply

Sending

国外老牌便宜域名服务商Namecheap注册com域名大优惠,抢到就赚到,优惠码:NEWCOM698
$5.98/年
直达官网