web-dev-qa-db-ja.com

残り-発信者のIPアドレスを取得する方法

Java Rest Web Serviceを作成していて、呼び出し元のIPアドレスが必要です。これをCookieで一度見たと思っていましたが、今はわかりません。これを取得するための一貫した場所はありますか?情報?

「OperationalContext」を使用して取得する例を1つ見ましたが、Javaにはありませんでした。

25
Wanderer

リクエストオブジェクトを使用してIPを取得できると思います。

私が間違っていないのであれば、request.getRemoteAddr()かそこら。

16
kukudas

HttpServletRequest をRest Serviceに挿入します。

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();

}
39
rjdkolb

あなたはこのようなことをすることができます:

@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); 

   }
}
5
Diogo Valim

サーブレットを使用して「Webサービス」を作成していると仮定すると、要求オブジェクトでのかなり単純なメソッド呼び出し.getRemoteAddr()によって、呼び出し元のIPアドレスがわかります。

1
Michael Banzon