使用Java

时间:2019-01-30 14:14:10

标签: java sockets http http-headers

我在具有DNS名称的服务器上托管了一个Java Web应用程序。此应用程序需要通过Internet在我的PC上本地运行的另一个应用程序进行HTTP Rest调用。

从PC到托管服务器的HTTP调用工作正常,并且能够从中获得响应。我还可以使用以下代码从托管服务器中的HTTP请求对象获取客户端IP(本地PC)地址:

String ipAddress = servletRequest.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = servletRequest.getRemoteAddr();
}

但是,从以上代码返回的IP地址不是我的本地PC。看起来像是来自我的ISP提供商。

我的问题是,托管服务器通过互联网返回HTTP响应。我们可以从通过Internet托管的服务器到本地PC进行单独的独立呼叫吗?我可以从HTTP请求对象中获取一些信息,以获取可以对其进行调用的本地PC的地址吗?

1 个答案:

答案 0 :(得分:0)

这将是连接地址,该地址在您的路由器处结束。设置路由器将传入的HTTP请求转发到您的PC /应用程序。

编辑:

我不确定您要做什么。如果您无法访问请求的计算机,则没有安全的方法来真正获得正确的IP。您写道,您可以访问计算机。 Yust使用whatismyip.com来获取正确的地址。然后配置路由器以转发传入的请求。如果您的IP可能更改,则可以使用dyndns或simmilar之类的dns服务来始终拥有唯一的地址来访问您的机器。您不需要提取信息。