IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Connaitre l'IP du client dans mon serveur


Sujet :

Services Web Java

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut Connaitre l'IP du client dans mon serveur
    Bonjour

    Je cherche un moyen de connaitre l'adresse IP/hostname du client qui se connecte à mon serveur de WebServices.
    J'utilise AXIS 1.4 et Oracle Application Server.

    edit
    dans l'exemple
    http://radio.javaranch.com/balajidl/...245423141.html
    il utilise MessageContext context = MessageContext.getCurrentContext();
    or chez moi context est null
    une solution?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    DevOps
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        	try {
        		InetAddress Ip =InetAddress.getLocalHost();
        		System.err.println("IP:"+Ip.getHostAddress());
        	}catch(Exception e) {
        		e.printStackTrace();
        	}

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Bonjour

    Cela ne me donnera pas l'IP du client coté serveur mais l'IP du serveur

    Merci qd même

  4. #4
    Nouveau membre du Club
    Profil pro
    DevOps
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    le code de ton serveur a-t'il était généré à partir du wsdl grace a axis?

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    >le code de ton serveur a-t'il était généré à partir du wsdl grace a axis?
    Non.
    Je viens de regarder le code lorsque Axis me génère le squelette coté serveur, la classe générée n'a rien de particulier à priori ou alors je n'ai pas vu la subtilité.
    Une idée?

  6. #6
    Nouveau membre du Club
    Profil pro
    DevOps
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    moi j'ai généré le code du serveur et le code du client avec axis à partir du wsdl, et j'ai testé ce qui est indiqué dans le lien de l'exemple, et ça marche bien, donc je pense que c'est peut être ca

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Tu pourrais me donner le code de ta classe qui utilise l'instruction
    MessageContext context = MessageContext.getCurrentContext();

    Merci

  8. #8
    Nouveau membre du Club
    Profil pro
    DevOps
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    /**
     * CalcMoyenneService2SoapBindingImpl.java
     *
     * This file was auto-generated from WSDL
     * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
     */
     
    package xxxx.xxx.xxxxx.calcmoyenne2;
     
     
     
     
    public class CalcMoyenneService2SoapBindingImpl implements xxxx.xxx.xxxxx.calcmoyenne2.CalcMoyenne2Port{
        public xxxx.xxx.xxxxx.calcmoyenne2.Average moyenne2(xxxx.xxx.xxxxx.calcmoyenne2.LotMeasures triplets) 
        		throws java.rmi.RemoteException {
        	System.err.println(">>>>>>> WS Calc Moyenne START");
        	Average moyenne = new Average();
        	double totalTemp = 0;
        	double totalHumid = 0;
        	int nbMeasures = 0;
     
    		totalTemp += triplets.getM1().getT1().getVal() + triplets.getM1().getT2().getVal();
    		totalTemp += triplets.getM2().getT1().getVal() + triplets.getM2().getT2().getVal();
    		totalTemp += triplets.getM3().getT1().getVal() + triplets.getM3().getT2().getVal();
    		totalTemp += triplets.getM4().getT1().getVal() + triplets.getM4().getT2().getVal();
    		totalTemp += triplets.getM5().getT1().getVal() + triplets.getM5().getT2().getVal();
    		totalTemp += triplets.getM6().getT1().getVal() + triplets.getM6().getT2().getVal();
    		totalTemp += triplets.getM7().getT1().getVal() + triplets.getM7().getT2().getVal();
    		totalTemp += triplets.getM8().getT1().getVal() + triplets.getM8().getT2().getVal();
    		totalTemp += triplets.getM9().getT1().getVal() + triplets.getM9().getT2().getVal();
    		totalTemp += triplets.getM10().getT1().getVal() + triplets.getM10().getT2().getVal();
     
    		totalHumid += triplets.getM1().getH().getVal();
    		totalHumid += triplets.getM2().getH().getVal();
    		totalHumid += triplets.getM3().getH().getVal();
    		totalHumid += triplets.getM4().getH().getVal();
    		totalHumid += triplets.getM5().getH().getVal();
    		totalHumid += triplets.getM6().getH().getVal();
    		totalHumid += triplets.getM7().getH().getVal();
    		totalHumid += triplets.getM8().getH().getVal();
    		totalHumid += triplets.getM9().getH().getVal();
    		totalHumid += triplets.getM10().getH().getVal();
     
    		nbMeasures = 10;
     
        	moyenne.setMh(totalHumid/nbMeasures);
        	moyenne.setMt(totalTemp/(2*nbMeasures));
     
        	System.err.println("<<<<<<< WS Calc Moyenne FINISH");
     
        	org.apache.axis.MessageContext context = org.apache.axis.MessageContext.getCurrentContext();
        	String callerIP = (String)context.getProperty(org.apache.axis.Constants.MC_REMOTE_ADDR);
     
        	System.err.println("<<<<<<< ip client: "+callerIP);
            return moyenne;
        }
     
    }

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    > hebus666
    Ta classe implémente comme moi l'interface des methodes de mes webservices, je pensais que ta classe héritait d'une autre mais non.

    J'utilise ORACLE Enterprise Manager 10g pour deployer mes serveurs, il y a peut-être une option à cocher pour dire de renseigner ce MessageContext.

    Tu utilises quelle application server?

  10. #10
    Nouveau membre du Club
    Profil pro
    DevOps
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    ah oui j'ai pas testé "ORACLE Enterprise Manager"

    moi je suis avec axis1.4/tomcat

  11. #11
    Nouveau membre du Club
    Profil pro
    DevOps
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    il te met quoi comme erreur quand tu utilise MessageContext?

  12. #12
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Salut

    En fait il me renvoie null mais je commence à penser que je ne dois pas utiliser le MessageContext d'Axis mais le MessageContext d'Oracle

  13. #13
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Bonjour

    Je remets à jour le problème que j'ai soumis il y a qques temps (j'étais parti de mon projet faute de budget mais je suis revenu donc je reviens sur mon souci)

    Quelqu'un a-t'il déjà utilisé le MessageContext? et si oui faut-il configurer quoi que ce soit?

    Merci

  14. #14
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    up

  15. #15
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Salut St20085,

    Je partage ton problème j'essaie depuis un moment d'obtenir l'IP du client depuis mon serveur, sans succès.

    A chaque fois j'obtiens l'IP de mon serveur ...

    voila mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MessageContext msgctx = MessageContext.getCurrentMessageContext();
    if(msgctx != null){
    	remoteIp =(String)msgctx.getProperty(MessageContext.REMOTE_ADDR);
    }

    Si quelqu'un à une réponse, elle sera la bienvenue

  16. #16
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Salut kaizokou

    as-tu essayé avec la constante MC_REMOTE_ADDR et non REMOTE_ADDR?

  17. #17
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Up

  18. #18
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Salut st20085,

    cela ne marche toujours pas chez toi ?
    Chez moi finalement ce bout de code était le bon est marche bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MessageContext msgctx = MessageContext.getCurrentMessageContext();
    if(msgctx != null){
    	remoteIp =(String)msgctx.getProperty(MessageContext.REMOTE_ADDR);
    }

  19. #19
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Salut kaizokou

    Non toujours pas mais comme on utilise Oracle Application Server, je pense qu'il faut le configurer avec Axis, donc je cherche des documents sur Google en espérant de trouver qque chose.

  20. #20
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 106
    Points : 182
    Points
    182
    Par défaut
    Bonjour

    Je tiens à apporter une réponse qui n'est pas forcément la plus pertinente mais bon à défaut d'avoir autre chose, cela marche

    Il faut définir dans le web.xml, les balises <filter> et <filter-mapping>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      <filter>
      	<filter-name>IPSessionFilter</filter-name>
      	<filter-class>server.filter.IPSessionFilter</filter-class>
      </filter>
      <filter-mapping>
       	<filter-name>IPSessionFilter</filter-name>
       	<servlet-name>Session_WebService</servlet-name>
      </filter-mapping>
    Ma classe server.filter.IPSessionFilter est déclarée de la facon suivante (j'ai supprimé le code superflu)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    package server.filter;
     
    import java.io.*;
     
    import javax.servlet.*;
     
    public class IPSessionFilter implements Filter
    {
      /*
       * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
       */
      public synchronized void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
      {
        // recup client IP
        String remoteAddr = request.getRemoteAddr();
     
        //
        chain.doFilter(request, response);
      }
     
      /*
       * @see javax.servlet.Filter#destroy()
       */
      public void destroy()
      {
      }
     
      /*
       * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
       */
      public void init(FilterConfig filterConfig) throws ServletException
      {
      }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/08/2010, 11h02
  2. Probleme de memoire dans mon serveur
    Par donkeyquote dans le forum Réseau
    Réponses: 2
    Dernier message: 22/11/2008, 20h09
  3. UPD: pas de comm ente mon client et mon serveur
    Par Joccy dans le forum Réseau
    Réponses: 18
    Dernier message: 03/04/2008, 18h57
  4. Réponses: 0
    Dernier message: 23/10/2007, 11h32
  5. upload des fichiers dans mon serveur
    Par abdou.sahraoui dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/05/2006, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo