2012-08-28 21 views
0

我有一个位于路由器后面的web服务器。该服务器上的一个servlet依赖于用户的IP地址,但是,我经常获取我的路由器的IP(即192.168.1.1)而不是真实的IP。我的服务器看到我的路由器的IP而不是客户端的

我该如何解决这个问题?

+0

嗨,我有同样的问题。你找到解决方案吗? – peter

+0

不,我必须找到一条不同的出路。不幸的是,我不记得我做了什么。基本上,你可以通过其他方式识别用户,例如获取他们的会话ID等。 – Ibolit

回答

0

http://www.whatismyip.com/获取全局IP,我想你可能还需要在有servlet的用户的路由器上配置端口转发。

+0

我知道我的全球IP。基本上,我有两台电脑在我的局域网中。其中之一是使用tomcat + servlets运行网络服务器。另一个(比如说...... 32)向它提出请求。我需要能够从我的servlet中知道该IP。 端口转发也设置 – Ibolit

+0

是IP使本地(LAN)请求? –

+0

如果请求是本地的,那么就不需要端口转发了,你可以分享一下这个servlet代码。 –

4

这听起来像你的“路由器”实际上表现得像一个反向代理。

你不可能在Java中甚至在你的服务器上解决这个问题。这听起来像是一个路由器配置问题。你可能最好在“超级用户”或“服务器故障”上寻求帮助。

有一点需要记住的是,通过IP地址识别客户端总是有点狡猾。即使一旦你整理出目前的问题,真正的客户端IP地址可能不是出于各种原因可用:

  • 客户端的IP可能被NAT的。

  • 客户端可能正在通过一系列HTTP代理与您的网络服务器通信。

  • 客户端可能欺骗其IP地址。

+0

是的,但在这种情况下,它保证在我的局域网中,并由我控制。 – Ibolit

+0

...直到您改变主意并在其他地方运行应用程序。 :-) –

相关问题