【问题标题】:Trouble getting IP of client in ServletRequest在 ServletRequest 中获取客户端 IP 时遇到问题
【发布时间】:2013-09-22 14:52:41
【问题描述】:

我正在尝试使用此获取远程 IP:

String remoteAddress = ((ServletRequestAttributes) RequestContextHolder
                .currentRequestAttributes()).getRequest().getRemoteAddr();

我在控制器中调用它,但它返回0:0:0:0:0:0:0:1。怎么了?

【问题讨论】:

  • 您是从本地(主机)浏览器访问 Web 应用程序吗?
  • 您的 servlet 容器前面是否有反向代理(如 Nginx 或 Apache Web 服务器)?

标签: java spring servlets ip


【解决方案1】:

0:0:0:0:0:0:0:1 是 IPv6 中的环回地址。 它相当于 IPv4 中的127.0.0.1

如果您只使用一台机器,这对我来说似乎很正常。否则,您能否提供更多详细信息?

编辑

如果您正在尝试获取您的外部(公共)IP,那么您可以查看这些 SO 帖子:

Get real client IP in a Servlet

Getting the 'external' IP address in Java

How to get external IP successfully

Getting the IP address of the current machine using Java

简而言之,您可以使用request.getRemoteAddr()。但如果您在同一网络上,它不会返回您的公共 IP 地址。

【讨论】:

  • 这不能回答问题。详细说明他为什么会得到这个结果,或将其作为评论。
  • 感谢您的评论。我对此很陌生(只是发现我不能评论)。我已经向 OP 询问了更多详细信息。
  • 什么样的细节?
  • 比如,预期的结果是什么?您期待不同的 IP 地址吗?来自另一台机器? (也许我只是不明白你的问题)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
  • 2015-06-06
  • 2020-11-10
  • 1970-01-01
  • 2018-02-13
相关资源
最近更新 更多