是否有简单可靠的方法来使用 Java 检测您的网站访问者 IP 地址。我正在尝试利用 Akismet 来检测我的博客文章/评论中的垃圾邮件。 API 要求我指定评论者的 IP 地址。
调用 ServletRequest.getRemoteAddr() 即可完成。
ServletRequest.getRemoteAddr()
在最简单的场景中执行此操作。如果您位于负载均衡器后面,则可能需要查看 X-Forwarded-For 标头,因为 getRemoteAddr()
将是负载均衡器的地址。它是一个以逗号分隔的 IP 号码列表,其中最后一个是连接到负载均衡器的地址。最后一个地址是您唯一可以真正信任的地址(因为它将由负载均衡器添加),其他地址可能是欺骗性的。
如果你在服务器端使用JSP,那么你可以看这个链接: http://www.rgagnon.com/javadetails/java-0363.html
如果您使用的是 servlet,那么您可以使用 HttpServletRequest.getRemoteAddr()
问题流量大约是 80% 的人,他们会努力确保他们不工作——我见过的每个保持运行的网站都使用某种人类不得不思考的身份验证,IPV4 是欺骗的持续来源,入侵和新闻报道(您希望远离这些)IPv6 通过工程级工作来解决这个问题。
到那时,我认为他们会转向使用人体盾牌或其他东西。