Comment obtenir l'adresse IP d'un client de service web?
Bonjour,
j'ai créé un service web en utilisant l'IDE Eclipse (Luna), le serveur Tomcat 8 et l'outil Axis 2. Il s'agit du service le plus simple qui effectue la somme de deux entiers. Pour cela, j'ai créé en java une classe 'AddOperator' qui définit le service et dont le contenu est le suivant:
Code:
1 2 3 4 5 6
|
public class AddOperator {
public int add (int x,int y){
return x+y;
} |
j'ai créé aussi un client qui consomme le service en question à l'aide de la classe 'AddClientOpp' et dont le code est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public class AddClientOpp {
public static void main(String[] args) throws RemoteException {
AddOperatorStub stub = new AddOperatorStub();
Add add = new Add();
add.setX(25);
add.setY(30);
System.out.println(stub.add(add).get_return());
}
} |
j'ai testé, et ça marche très bien.
maintenant, j'ai besoin de récupérer l'adresse IP du client qui a consommé mon service web. J'ai cherché et j'ai trouvé quelques méthodes et portions de codes qui permette de le faire, telles que:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
import javax.servlet.http.HttpServletRequest;
//...
private static String getClientIp(HttpServletRequest request) {
String remoteAddr = "";
if (request != null) {
remoteAddr = request.getHeader("X-FORWARDED-FOR");
if (remoteAddr == null || "".equals(remoteAddr)) {
remoteAddr = request.getRemoteAddr();
}
}
return remoteAddr;
} |
ou encore:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
import java.net.*;
import java.io.*;
import java.applet.*;
public class GetClientIP extends Applet {
public void init() {
try {
InetAddress Ip =InetAddress.getLocalHost();
System.out.println("IP:"+Ip.getHostAddress());
}
catch(Exception e) {
e.printStackTrace();
}
}
} |
mais je ne sais pas où dois-je intégrer ces portion de codes ou ces méthodes au niveau de mon processus de création de service web décrit plus haut!!
Si quelqu'un a une réponse, prière de me tenir au courant.
Merci.