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