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 :

Détéction changement adresse ip


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut Détéction changement adresse ip
    Bonjour,
    Tout est dans le sujet, en effet j'aimerai savoir comment peut on détecter le changement d'ip dans une application java sans passer par les thread, je cherche un moyen comme un listener par ex, ou un trigger : une fois l'ip change => notification de la couche application et récupération de la nouvelle adresse
    Merci d'avance.

  2. #2
    Membre très actif
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Par défaut
    L'IP ne change que par exemple si tu redemmarre ton routeur alors que ton ip est dynamique.

    Dans ce même cas, tu perd toute connexion à absolument tout ce qui est extérieur. Donc l'utilité est très faible.

    Sinon, fait un Runnable qui lit la valeur d'adresse de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InetAddress java.net.InetAddress.getLocalHost() throws UnknownHostException
    Mémorise une première fois, fait une boucle infinie dans laquelle tu fais un sleep et une vérification pour savoir si tu as changé.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    Merci pour ta réponse, mais c'est justement ce que je veux éviter de faire, ton idée c'est de faire un thread qui compare régulièrement l'adresse ip initiale avec l'ip à l'instant t. ce que je cherche c'est que l'info remonte directement à la couche application (mettre une sorte de listener comme par exemple pour les sockets qui écoute le réseau et qui notifie l'application une fois un msg reçu).
    Quant à l'utilité de ce qe je cherche, c'est justement pour rester connecté avec l'extérieur, en leurs transmettant instantanément la nouvelle adresse ip, je rappelle ici que le changement d'ip n'est pas forcement lié au redémarrage d'un routeur, si par ex on est dans un contexte sans fil, le fait de changer de réseau (passer d'un AP à un autre, bien entendu avec autorisation d'obtention d'adresse ip via dhcp) induit un changement d'ip.

  4. #4
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Ca n'existe pas à ma connaissance en Java directement, mais peut être en natif avec une intégration JNI à ton code Java.

  5. #5
    Membre très actif
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Par défaut
    Un code qui pourrait te convenir (même si ce que tu cherches a faire reste à mon avis inutile)

    Controler.java
    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
    import java.util.LinkedList;
     
    /**
     * 
     * Repeatable controler.
     * 
     * @author M.Turpin
     * 
     * @since 20 nov. 2008
     * 
     */
    public class Controler<T extends TestCase> extends Thread {
     
    	private T test;
    	private long sleepTime;
    	private LinkedList<TestListener<T>> listeners;
     
    	public Controler(T test) {
    		this(test, 1000L);
    	}
     
    	public Controler(T test, long sleepTime) {
    		this.test = test;
    		this.sleepTime = sleepTime;
    		listeners = new LinkedList<TestListener<T>>();
    	}
     
    	@Override
    	public void run() {
    		while (true) {
    			try {
    				sleep(sleepTime);
    			} catch (InterruptedException ignore) {
    			}
    			if (test.test())
    				for (TestListener<T> listener : listeners)
    					listener.onCompleteTestEvent(test);
    			else
    				for (TestListener<T> listener : listeners)
    					listener.onUncompleteTestEvent(test);
    		}
    	}
     
    	public void addTestListener(TestListener<T> listener) {
    		listeners.addLast(listener);
    	}
    }
    TestCase.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /**
     * 
     * Test case.
     * 
     * @author M.Turpin
     * 
     * @since 20 nov. 2008
     *
     */
    public abstract class TestCase {
    	public abstract boolean test();
    }
    TestListener.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /**
     * 
     * Listener on the result of a test case.
     * 
     * @author M.Turpin
     * 
     * @since 20 nov. 2008
     * 
     */
    public abstract class TestListener<T extends TestCase> {
    	public void onCompleteTestEvent(T testCase) {}
    	public void onUncompleteTestEvent(T testCase) {}
    }


    Hérite ensuite de TestCase (on vas dire une classe IPChangeTest) pour savoir si oui ou non tu as changé d'IP à un instant t.
    Hérite de TestListener<IPChangeTest> pour tous tes écouteurs.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut, comme dit plus haut, je ne crois pas qu'il y ait de système de listener en java, donc le thread qui teste régulièrement me semble de rigueur...

    Citation Envoyé par Grimly Voir le message
    Un code qui pourrait te convenir (même si ce que tu cherches a faire reste à mon avis inutile)
    Ca ne me parait pas si inutile que ca, par exemple, un logiciel qui tient à jour un DNS dynamique, il doit bien détecter le changement d'IP pour l'envoyer à l'annuaire...

Discussions similaires

  1. Changement adresse webservice
    Par kiwiii dans le forum Flex
    Réponses: 4
    Dernier message: 27/05/2010, 17h36
  2. [SP-2007] Problème wss_content après changement adresse IP
    Par stphilippoz dans le forum SharePoint
    Réponses: 0
    Dernier message: 18/06/2009, 15h13
  3. Changement adresse base de données
    Par loig41 dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/07/2007, 17h09
  4. Changement adresse IP
    Par Mus_mus dans le forum Windows
    Réponses: 5
    Dernier message: 23/12/2006, 12h38
  5. Detection changement adresse IP
    Par MonsieurAk dans le forum Développement
    Réponses: 4
    Dernier message: 26/07/2005, 09h26

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