如何在 Java 中使用 RESTful Web 服务获取远程/客户端 IP 地址?
Posted
技术标签:
【中文标题】如何在 Java 中使用 RESTful Web 服务获取远程/客户端 IP 地址?【英文标题】:How to get Remote / Client IP address using RESTful web service in java? 【发布时间】:2012-12-24 16:01:43 【问题描述】:我在我的项目中写了Rest web service。web service调用可能来自不同的机器。所以我需要通过REST webservice找出IP地址。
从这个link request.getRemoteAddr() 使用这个。
但我不能使用 getRemoteAddr()。因为我的请求和响应都是xml格式的。
我在 REST 服务中使用了 post 方法。Tomcat 服务器。我以 xml 格式发送请求。
如何获取IP地址?
【问题讨论】:
您能说出您使用的是什么技术/框架吗? 【参考方案1】:无论您的请求的格式(或内容类型)如何(在本例中为 xml) IP 地址随您的请求一起提供,通过该 IP 地址提交 xml 有效负载(请求)。 因此,检查您的请求是最好的方法。
【讨论】:
您的请求数据 (xml) 始终包含在 HTTP 请求中【参考方案2】:即使您的请求是 xml/json 格式,您也会使用 request.getRemoteAddr();
获取远程/客户端计算机地址,因为 IP 地址位于 HTTP Request header。
【讨论】:
我无法通过xml请求对象获取getRemoteAddr()。【参考方案3】:假设您使用的是 JAX-RS:
@GET
Produces("application/xlm")
public String getData(@Context HttpServletRequest request)
String ip = request.getRemoteAddr();
@Context
注解允许您注入
【讨论】:
以上是关于如何在 Java 中使用 RESTful Web 服务获取远程/客户端 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章
用 Java 技术创建 RESTful Web 服务/@Path@Produces@PathParam
如何从 android 调用 RESTful Web 服务?