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

Java Discussion :

IP Lan et IP Wan linux


Sujet :

Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut IP Lan et IP Wan linux
    Bonjour,
    J'ai plusieurs questions :
    tout d'abord, pourquoi quand j'utilise la methode inetAdress.getlocalhost() sous linux, il ne me donne pas l'adresse IP Lan de mon Serveur mais l'inet de connection alors que windows me donne bien l'IP lan de mon Serveur.
    Ensuite, que dois je faire pour obtenir le bon IP Lan en java pour linux (avec une methode similaire).
    Enfin, je dois de meme obtenir l'IP Wan du site ou est posé le serveur. Il me le faut pour renommer mes fichiers donc meme si je peux l'avoir en shell c'est pas grave! (mais en java c'est mieu).
    J'espere que j'ai été comprehensible!!!
    Merci beaucoup!

  2. #2
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    Bonjour,

    pour InetAddress.getlocalhost() sous linux elle va te retourner le 127.0.0.1 (se qui est normal) c'est l'address local de la machine.
    pour avoir l'address Lan il fa falloir utiliser InetAddress.getByName() (ou getAllByName() si la machine a plusieurs adresse).
    par contre pour avoir l'address wan je ne voie pas trop, a pars je connecter sur une autre machine (pas en local) et lui demander notre adresse :s

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    pour la premiere reponse, j'ai plusieurs cartes reseau mais il me faut juste la premiere (c'est pour mettre dans un nom de fichier).
    en fait jai mal formulé les requetes, il me faut encore l'obtient de l'IP WAN en shell, en java, et en batch (mais c'est optionel si qqn sait autant que je l'utilise).

  4. #4
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    Pour ta methode InetAddress.getByName() on me demande un parametre string et je n'arrive pas a trouver tous les parametres possibles...qqn a un lien?

  5. #5
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    c'est le nom de la machine (il te faut donc le nom de la machine ..)

    sinon go la javadoc

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par kavdo34 Voir le message
    pour la premiere reponse, j'ai plusieurs cartes reseau mais il me faut juste la premiere (c'est pour mettre dans un nom de fichier).
    en fait jai mal formulé les requetes, il me faut encore l'obtient de l'IP WAN en shell, en java, et en batch (mais c'est optionel si qqn sait autant que je l'utilise).
    Tu ne saurais pas directement obtenir l'adresse IP publique de ton reseau. (enfin je pense).

    Par contre tu pourrais faire une requette HTTP en java vers un service du genre http://whatismyipaddress.com/ et parser le resultat pour obtenir ton IP publique mais il y'a peut etre mieux.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    ouai alors j'ai testé ton getbyname mais le probleme mais que y'a entre 100 et 400 serveurs sur lesquels je dois l'installer...Donc sauf si tu a une methode pour choper le nom du PC je ne vois pas comment je vais pouvoir faire :/

  8. #8
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    j'ai fait ce code pour tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String nom=InetAddress.getLocalHost().getHostName();
    InetAddress ip = InetAddress.getByName(nom);
    System.out.println(ip);
    mais il me sort toujours 127.0.0.1 ...

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Le même code chez moi retourne bien le nom de l'ordinateur et l'Ip correcte

    Ceci te renvoye-il la même chose ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InetAddress.getLocalHost().getHostAddress()
    (a mon avis oui mais qui sait ...)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    Citation Envoyé par kavdo34 Voir le message
    j'ai fait ce code pour tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String nom=InetAddress.getLocalHost().getHostName();
    InetAddress ip = InetAddress.getByName(nom);
    System.out.println(ip);
    mais il me sort toujours 127.0.0.1 ...
    normal j'ai envie de dire.

    InetAddress.getLocalHost().getHostName(); va te renvoyer "localhost" qui a pour adresse .. 127.0.0.1.
    (a moins de configurer la machine pour que localhost ai l'ip du LAN ou que le nom local soit le nom reel de la machine, se dont je peu malheureusement pas dire comment faite :s)

    Edit: Sinon tu peu teste (je n'ai pas tester mais ca devrai marcher) un truc comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Socket s=new Socket("www.google.fr", 80);
    InetAddress ip=s.getLocalAddress()
    s.close()

  11. #11
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    non en fait je me suis pas embeté j'ai tout renommer en shell apres le premier renommage...c'est pas de la belle programmation mais bon ça marche et puis bon mon tuteur m'a dis "
    je m'en bat les c***** faut que ça marche apres je m'en fou
    "
    donc je l'ai suivi a la lettre lol! par contre pour l'ip wan je me demandais si le routeur ne pouvais pas me donner des infos sur les flux entrant ou sortant du reseau avec un tracert ou qqch comme ça...il me faut absolument une solution sinon mon logiciel ne marchera que pour les serveurs du reseau car pas de confusions possibles entre les IP Lan qui engendreraient des suppressions de pages!
    il faut que je trouve une methode fiable

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pour la liste des adresses locales:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
    		while (e.hasMoreElements()){
    			Enumeration<InetAddress> i = e.nextElement().getInetAddresses();
    			while (i.hasMoreElements()){
    				InetAddress a = i.nextElement();
    				System.out.println(a.getHostName()+" -> "+a.getHostAddress()+ ": "+a.getCanonicalHostName());
    			}
    		}
    Chez moi, ca sort:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fe80:0:0:0:21e:xxxx:xxxx:xxxx%2 -> fe80:0:0:0:21e:xxxx:xxxx:xxxx%2: fe80:0:0:0:21e:xxxx:xxxx:xxxx%2
    mamachine.xxx.be -> 192.168.xxx.xxx: mamachine.xxx.be
    localhost -> 0:0:0:0:0:0:0:1%1: localhost
    localhost -> 127.0.0.1: localhost
    si t'es dans un NAT, pour ton adresse extérieure, faudra passer par un service extérieur ou hardcoder (après tout, si c'est un NAT, l'ip du NAT a peu de chance de changer)

  13. #13
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    chez moi ça donne localhost -> 127.0.0.1: localhost
    192.168.10.x -> 192.168.10.x: 192.168.10.x
    c'est mon ip LAn qu'il me sort .
    je ne sais pas ce que c'est un NAT

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    NAT-> netowrk address translation, c'est ce qu'utilisent tous les routeur qui doivent faire le pont entre un réseau local en adresses privées et un réseau public. Ca change les paquets au vol avant de les faire sortir et même chose dans l'autre sens.


    Je comprend pas un truc, tu parle de 500 serveur et d'ip wan. Je doute que ces 500 serveurs soient en adresse privée, mais si c'est le cas, il auront alors tous la même adresse publique (celle du routeur), alors autant la coder directement dans un fichier de configuration!

  15. #15
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    non mais cest bon je vais laisser tombé je pense je vais plutot nommer mes fichiers avec des numero et j'aurais qu'a me reporter a un fichier excel pour voir a quoi ça correspond

Discussions similaires

  1. Application LAN vers Application WAN
    Par zoheir13 dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/04/2008, 10h27
  2. [TCP/IP] VNC d'un poste WAN vers un poste LAN via serveur XP
    Par Fares BELHAOUAS dans le forum Applications
    Réponses: 11
    Dernier message: 15/12/2004, 14h01
  3. Réponses: 6
    Dernier message: 26/03/2004, 16h31
  4. [linux] connexion LAN via ethernet - ping passerelle KO
    Par CLB dans le forum Développement
    Réponses: 5
    Dernier message: 26/03/2004, 14h40

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