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

Entrée/Sortie Java Discussion :

Adresse IP d'un client


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Par défaut Adresse IP d'un client
    Bonjour,

    est-ce que quelqu'un pourrait m'indiquer comment s'obtient l'adresse IP d'un client.
    Un client envoie une requete à un serveur.
    Comment ce serveur peut-il obtenir l'IP du client qui l'a contacté ?

    Merci

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Je ne sais pas comment marche ton serveur mais si tu utilise un ServerSocket quand tu utilise la méthode accept pour accepter une connexion tu récupère une Socket et tu utilise la méthode getLocalAddress()

    En espérant t'aider

  3. #3
    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 parano
    Bonjour,

    est-ce que quelqu'un pourrait m'indiquer comment s'obtient l'adresse IP d'un client.
    Un client envoie une requete à un serveur.
    Comment ce serveur peut-il obtenir l'IP du client qui l'a contacté ?

    Merci
    Est ce que tu peux preciser ton environnement ?
    Quel est l'OS ?
    Est ce que tu utilise un Serveur d'application ?
    Est ce que tu as développé ce que tu appelles serveur ?

    En gros plus t'es precis dans ta description plus tu auras une reponse claire et concise !!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Par défaut
    Citation Envoyé par wace
    Est ce que tu peux preciser ton environnement ?
    Quel est l'OS ?
    Est ce que tu utilise un Serveur d'application ?
    Est ce que tu as développé ce que tu appelles serveur ?

    En gros plus t'es precis dans ta description plus tu auras une reponse claire et concise !!!
    Je travaille sous Debian
    Le plus simple est que je mette ce que j'ai codé
    J'ai réduit le code pour que ce soit plus clair (mais ça reste compilable).

    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
    //ConnectionClient.java
     
     
    import java.net.*;
    import java.io.*;
     
    // la classe Connection : c'est une thread
    public class ConnectionClient extends Thread {
        protected Socket client;
     
        public ConnectionClient(Socket client_socket) {
        client = client_socket;
        System.out.println(client.getInetAddress());
        }
    }
    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
    import java.io.*;
    import java.net.*;
    import java.util.*;
     
    public class Client extends Thread{
        protected int port;
        protected ServerSocket listen_socket; 
     
     
        // Cree un serveur TCP : c'est un objet de la classe ServerSocket
        // Puis lance l'ecoute du serveur.
        public Client(int port) {
        try {
            listen_socket = new ServerSocket(port);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("Serveur lance sur le port " + port);
        this.start();
        }
     
        public Client(){}
     
        // Le corps de la thread d'ecoute :
        // Le serveur ecoute et accepte les connections.
        // pour chaque connexion, il cree une thread
        // (objet de la classe Connection,
        // classe derivee de la classe Thread)
        // qui va la traiter.
        public void run() {
        try {
            while(true) {
            Socket client_socket = listen_socket.accept();
            ConnectionClient c = new ConnectionClient(client_socket);
            } 
        }catch (IOException e) {
            e.printStackTrace();
        }
        }
     
        public static void main(String[] args){
        if(args.length == 1)
            {
            Integer port = Integer.parseInt(args[0]); 
            new Client(port);
            }
        else
            {
            try{
                Socket socket = new Socket("127.0.0.1", 2000);
            }catch(Exception e){
                e.printStackTrace();
            }
            }
        }
    }
    Ce que j'obtiens une fois que je lance le programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     java Client 2000
    Serveur lance sur le port 2000
    /127.0.0.1
    Je n'obtient pas l'ip du client mais celui du serveur

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par parano
    Je n'obtient pas l'ip du client mais celui du serveur
    En même temps si le client se connecte sur le 127.0.0.1 alors il utilise la boucle locale et son adresse est également 127.0.0.1...


    a++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Par défaut
    Citation Envoyé par adiGuba
    Salut,


    En même temps si le client se connecte sur le 127.0.0.1 alors il utilise la boucle locale et son adresse est également 127.0.0.1...


    a++
    Comment faire alors ?

  7. #7
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Ce que adiGuba veut te dire c'est que si tu utilise ton application en local ton client et ton serveur ont la même adresse : 127.0.0.1

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par parano
    Comment faire alors ?
    Comment faire pour quoi ?

    Pour avoir une adresse différente ? il faut un réseau et donc 2 machines (éventuellement virtuelles)

    a++

  9. #9
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Essaye comme je te l'avait mis de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    client.getLocalAddress()

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Par défaut
    Citation Envoyé par guigui5931
    Essaye comme je te l'avait mis de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    client.getLocalAddress()
    Ca donne le même résultat.

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

Discussions similaires

  1. Adresse MAC d'un client UDP
    Par laurent_menard dans le forum Web & réseau
    Réponses: 3
    Dernier message: 24/02/2010, 15h42
  2. adresse IP d'un client
    Par houcem001 dans le forum C#
    Réponses: 5
    Dernier message: 21/02/2009, 19h56
  3. Récupération de l'adresse IP du poste client
    Par isagarran dans le forum Apache
    Réponses: 1
    Dernier message: 07/07/2008, 10h45
  4. Récupérer l'adresse IP d'un client
    Par ValyGator dans le forum Windows
    Réponses: 5
    Dernier message: 21/02/2008, 20h22

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