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

API standards et tierces Java Discussion :

socket et adresse ip


Sujet :

API standards et tierces Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut socket et adresse ip
    Bonjour, j'aimerais savoir comment faire pour récupérer l'adresse IP du réseau et d'un PC.
    Je m'explique. je suis en train de créer une application client - server.

    Donc le client peut se trouver a l'adresse 82.238.154.162
    un client 82.238.154.163/192.168.0.3 et un autre client 82.238.154.163/192.168.0.2.

    Pour le moment je fait :
    SocketAddress adrClient=socket.getRemoteSocketAddress();
    String strIpClient=adrClient.toString();
    System.out.println(strIpClient);
    mais ca ne marche pas. je n'obtient pas :
    82.238.154.163/192.168.0.2

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Est ce cela que tu cherches ???

    String AdrIp = InetAddress.getLocalHost().getHostAddress();

    ++

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut
    j'obtient 192.168.0.2 seulement.
    moi il me faudrais en plus l'adresse réseau de façon a pouvoir refusée une connexion si deux personne viennent de
    82.238.154.163/192.168.0.3

  4. #4
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Je ne comprend pas bien c'est quoi que tu appelles l'adresse réseau ?

    Est ce que c'est l'adresse publique de la machine distante ?
    Est ce que c'est ton adresse publique ?

    Dans tous les cas pour communiquer avec une machine distante, tu ne peux qu'utiliser son adresse publique... apres si tu as plusieurs machines sur un LAN accessible par la meme adresse ip publique, c'est a l'entrée du LAN distant (patte WAN du lan distant) que du port forwarding sera effectuer afin d'orienter la connexion vers la bonne machine.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut
    l'adresse donner par le FAI.

  6. #6
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Je vais essayer d'etre plus clair

    Tu souhaite l'adresse public local (patte WAN de ton réseau local donc @ de ton FAI) ou l'adresse public distante (patte WAN du LAN sur lequel se trouve la machine avec qui tu comunique) ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut
    en faite si on se place sur le serveur.
    je veux l'adresse : donner par la FAI ( au pc si il est directement relier , ou du routeur ).
    De plus si il est derrière un routeur, il me faut l'adresse l'ip de son PC.

  8. #8
    Membre expérimenté Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Par défaut
    Citation Envoyé par damien77
    De plus si il est derrière un routeur, il me faut l'adresse l'ip de son PC.
    S'il est derrière un routeur pourquoi tu veux obtenir son adresse IP ?

    Un autre question, pourquoi est ce que tu as besoin de l'adresse IP de ton client dans une application client-serveur ? Parce que pour moi le plus simple si tu en as vraiement besoin c'est de telecharger un composant coté client qui recupere son adresseIP et qui la transmet a ton application, ... mais bon ca me semble un peu bancale comme manip, d'ou ma question sur l'interet de recuperer l'adresse IP

  9. #9
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Je pense que si c'est un client que tu code toi meme qui se connect a un serveur que tu code toi meme, tu devrai pouvoir recuperer tout cela sur le serveur.

    Coté client a l'initialisation tu recupere l'adresse LAN local avec le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String AdrIp = InetAddress.getLocalHost().getHostAddress();
    tu recupere egalement ton adresse WAN avec un truc du genre :

    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
     
    // On initialise l'URL "http://lufrima.free.fr/ip.php"
     
    URL u = new URL("http://lufrima.free.fr/ip.php");
     
    // On récupère le flux de cette URL
     
    InputStream i = u.openStream();
     
    // On le met dans un buffer
     
    BufferedReader b = new BufferedReader(new InputStreamReader(i));
     
    // On lit la première ligne (la seule dans le cas de la page en question)
     
    String s = b.readLine();
     
    // La chaîne "s" contient l'adresse IP publique du PC
     
    System.out.println(s);
    Tu renvoie le tout (les deux info) au serveur en utilisant la socket de connexion que le client etablie avec le serveur. le serveur verifie si jamais les deux info sont egale, alors il n'y a pas de routeur le pc est directement connecté sur le net...

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut
    en faite j'ai besoin des deux pour interdire à un client d'ouvrir deux fois l'application. et je ne veux pas créer un ServerSocket sur son PC.
    donc pour moi c'était la meilleur solution d'avoir son IP WAN et LAN.

  11. #11
    Membre expérimenté Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Par défaut
    si tu as ecrit la partie client et la partie serveur, alors comme le dit guis14 tu te debrouille pour avoir une info transmis par le client et verifiable par le serveur a la connexion,

    un systeme de jeton unique pour la connexion te permettra de resoudre ton probleme, la premiere instance du client prends un jeton et transmet son adresse, et le deuxieme client se fait jeter par le serveur car pour cette adresse il y a deja un jeton de pris,

    voila

Discussions similaires

  1. Socket et adresse Mac
    Par haithem20080 dans le forum C
    Réponses: 5
    Dernier message: 06/04/2010, 00h06
  2. Socket et adresse
    Par Razor620 dans le forum C++
    Réponses: 3
    Dernier message: 20/01/2009, 17h07
  3. Récupérer Adresse IP Réseau avec les sockets
    Par SteelBox dans le forum Réseau
    Réponses: 21
    Dernier message: 14/05/2007, 10h28
  4. [Live Box] quelle adresse pour la socket?
    Par orelero dans le forum Développement
    Réponses: 18
    Dernier message: 07/05/2006, 18h17
  5. Récupérer l'adresse de bind d'un socket
    Par gloode dans le forum Réseau
    Réponses: 4
    Dernier message: 04/02/2005, 10h56

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