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

Développement Web en Java Discussion :

Comment récupérer l'adresse de son propre serveur?


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 39
    Points : 20
    Points
    20
    Par défaut Comment récupérer l'adresse de son propre serveur?
    C'est idiot comme question non?

    Avec un serveur web apache pour une appli JEE.
    Avec Spring (et hibernate)

    Je voudrais récupérer l'adresse de mon serveur (c'est pour une url que j'envoie dans un mail). Seulement je n'ai pas accès aux Request et autre car cette opération n'est pas faite suite à une requête http mais par une tâche programmée à l'aide de quartz.

    Je ne veux pas mettre cette adresse en dur dans mes fichiers car il faudrait la changer pour chaque plateforme (locale, recette etc..)

    Dans les objets java dispo avec le jdk et spring je retombe toujours sur ServletContext qui est censé implémenter getContextPath() d'après la doc, seulement cette méthode n'est pas dispo...

    D'autres objets me donnent accès à mes fichier xml mais pas à l'adresse utilisée par le serveur web...

    Voilà, quelqu'un a - t - il une idée qui soit indépendante du serveur web? (j'utilise jetty en dev et apache ailleurs...)

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Points : 48
    Points
    48
    Par défaut
    Bonsoir,
    Mais non, ta question n'est pas idiote du tout. Si j'ai bien compris, tu souhaites construire une adresse afin que tout le monde puisse pointer sur ton serveur en direct. Pour ma part, je pense que tu peux utiliser l'IP "publique" de ta machine pour construire l'URL car je ne vois pas comment accéder au nom de domaine via le DNS en Java... (et parfois meme il n'y a pas de domaine configuré...).

    De plus, il faut savoir que bon nombre de serveurs d'entreprises possèdent plusieurs interfaces réseau (trust, admin, public,...).
    De ce fait, tu dois être capable de récupérer l'adresse de la bonne interface (la publique).
    Dans l'exemple qui suit, je pars du principe qu'il s'agit d'"eth0".

    Donc, pour trouver l'IP de l'interface voici un petit bout de code :
    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
    	String inetAddressType = "";
    	// Récupération des interfaces réseau et adresses associées à cette machine
            try {
                NetworkInterface networkInterface = NetworkInterface.getByName("eth0");
                if (networkInterface == null) {
                    System.out.printf("--Pas d'interface trouvée--\n");
                } else {
                    System.out.printf("Interface %s :\n", networkInterface.getName() );
     
                    Enumeration<InetAddress> addrList = networkInterface.getInetAddresses();
                    if (!addrList.hasMoreElements()) {
                    	System.out.println("\t(Pas d'adresse pour cette interface)");
                    }
                    while (addrList.hasMoreElements()) {
                        	InetAddress address = addrList.nextElement();
    			inetAddressType = "";
    			if ( address instanceof Inet4Address ){
    				inetAddressType = "(v4)";
    		                System.out.printf("\tAddresse %s : %s \n", inetAddressType, address.getHostAddress() );
    			}
             	}
                }
            } 
    	catch (UnknownHostException uhe) {
                System.out.printf("Unknown Host Exception: %s \n", uhe.getMessage());
            }
    	catch (SocketException se) {
                System.out.printf("Error getting network interfaces: %s \n", se.getMessage());
            }
        }
    Bon courage...

    ______________
    http://blog.ostyn.fr

Discussions similaires

  1. [Python 2.X] Comment récupérer l'adresse du serveur ?
    Par luffy_m dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 29/07/2014, 15h17
  2. Comment créer son propre serveur proxy
    Par jaljal dans le forum Linux
    Réponses: 7
    Dernier message: 13/10/2010, 10h13
  3. Comment uploader une image sur son propre serveur avec l'éditeur nicedit ?
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/04/2009, 13h01
  4. comment héberger son site dans son propre serveur ?
    Par aally79 dans le forum Hébergement
    Réponses: 2
    Dernier message: 27/02/2009, 11h20
  5. Réponses: 2
    Dernier message: 11/07/2006, 10h42

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