Отдых - Как получить IP-адрес вызывающего абонента
-
26-09-2019 - |
Вопрос
Я пишу веб-сервис Java Ress и понадобится IP-адрес вызывающего абонента. Я думал, что видел это в печенье один раз, но теперь я этого не вижу. Есть ли последовательное место, чтобы получить эту информацию?
Я видел один пример использования «OperationalContext», чтобы получить его, но это не было в Java.
Решение
Я думаю, что вы можете получить IP через объект запроса.
Если я не ошибаюсь, request.getRemoteAddr()
или так.
Другие советы
Ввод а Httpservletrequest в вашу отдых, как таковой:
import javax.servlet.http.HttpServletRequest;
@GET
@Path("/yourservice")
@Produces("text/xml")
public String activate(@Context HttpServletRequest requestContext,@Context SecurityContext context){
String ipAddressRequestCameFrom = requestContext.getRemoteAddr();
//Also if security is enabled
Principal principal = context.getUserPrincipal();
String userName = principal.getName();
}
Вы могли бы сделать что-то вроде этого:
@WebService
public class YourService {
@Resource
WebServiceContext webServiceContext;
@WebMethod
public String myMethod() {
MessageContext messageContext = webServiceContext.getMessageContext();
HttpServletRequest request = (HttpServletRequest) messageContext.get(MessageContext.SERVLET_REQUEST);
String callerIpAddress = request.getRemoteAddr();
System.out.println("Caller IP = " + callerIpAddress);
}
}
Предполагая, что вы делаете свой «веб-сервис» с сервлетами, довольно простым вызовом метода .getRemoteAddr()
На объекте запроса даст вам IP-адрес абонентов.
Не связан с StackOverflow