Как получить удаленный/клиентский IP-адрес с помощью веб-службы RESTful в java?
Я написал веб-сервис Rest в моем проекте. Вызов веб-службы может поступать с разных компьютеров. Мне нужно узнать IP-адрес через веб-сервис REST.
Из этой ссылки request.getRemoteAddr(), чтобы использовать это.
Но я не могу использовать getRemoteAddr(). Поскольку мой запрос и ответ представляют собой формат xml.
Я использовал метод post в службе REST.Tomcat server.I отправил запрос как XML-формат.
Как я могу получить IP-адрес?
Ответы
Ответ 1
Предполагая, что вы используете JAX-RS:
@GET
Produces("application/xlm")
public String getData(@Context HttpServletRequest request){
String ip = request.getRemoteAddr();
}
Аннотация @Context
позволяет вводить экземпляры
- javax.ws.rs.core.HttpHeaders,
- javax.ws.rs.core.UriInfo,
- javax.ws.rs.core.Request,
- javax.servlet.HttpServletRequest,
- javax.servlet.HttpServletResponse,
- javax.servlet.ServletConfig,
- javax.servlet.ServletContext и
- javax.ws.rs.core.SecurityContext объекты.
Ответ 2
Независимо от формата (или типа содержимого) вашего запроса (в данном случае xml)
IP-адрес предоставляется вашим запросом, через который отправляется полезная нагрузка (запрос) xml.
Следовательно, наилучшим способом проверить ваш запрос.
Ответ 3
Даже если ваш запрос находится в формате xml/json, вы получите адрес удаленной/клиентской машины с помощью request.getRemoteAddr();
, потому что IP-адрес находится в заголовок HTTP-запроса.