如何在JSP中了解远程IP地址

时间:2013-06-24 06:51:19

标签: java http servlets http-headers remote-server

我有网络应用程序,通过它可以进行付款交易。

应用程序的流程

用户将打开我的应用程序并点击付款按钮。现在我将请求重定向到支付网关提供商(ICICI,EBS,PayPal等)。现在,支付网关提供商页面将出现在我的网站上。现在支付流程将完成,支付网关提供商将其响应发布到我的应用程序(到JSP页面)。在捕获响应后,我将处理请求。

我的要求

如何在调用我的JSP时知道ICICI,PayPal或EBS服务器的IP地址。如果我拨打request.getRemoteAddr(),它将提供客户端IP地址。我想知道支付网关服务器的IP地址。

提供商将数据发布为 GET 而不是POST。在这里,我没有提到我的实际支付网关提供商。

2 个答案:

答案 0 :(得分:2)

一般情况下,如果没有来自付款提供商的帮助,您只能知道这一点

  • 您和提供商之间没有代理,
  • 提供商直接向您发送HTTP POST(或类似信息)

在这种情况下,ServletRequest.getRemoteAddr()应该提供提供者的地址。

如果您获得了客户端浏览器的地址,那么提供商可能直接向您发送POST,而是指示客户端浏览器发送它(最有可能使用Javascript)。在这种情况下,您无法找到提供商发送的地址。


无论如何,您为什么需要知道支付提供商的IP地址?您自己重定向到提供商,因此您已拥有该地址,不是吗?

也许您可以更详细地解释您,客户端浏览器和支付提供商之间的数据流,以及您想知道提供商的IP地址的原因?也许那时我们可以提供更好的帮助。

答案 1 :(得分:1)

对于PayPal,您可以使用IPN
https://www.paypal.com/ipn

  

即时付款通知(IPN)是PayPal的消息服务   在交易受到影响时发送通知。一旦IPN到了   集成,卖家可以自动化他们的后台,所以他们没有   等待付款进入以触发订单履行。

使用IPN,您可以从PayPal服务器获得对您的IPN网址的POST / GET调用。这意味着客户在付款后无需返回您的网站,您无需验证客户数据 - 相反,PayPal服务器会进行三次握手:他们会向您发送付款数据,您会发回支票,他们验证检查您的数据是否正确。在这种情况下,服务器IP是来自http呼叫的始发IP。

其他服务可能会有类似的东西。