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 :

InetAddress et SSID


Sujet :

Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut InetAddress et SSID
    Bonjour,
    Alors voilà n'ayant pas de trouvé relatif à mon problème je le poste :
    Je dois me connecter depuis mon ordinateur à un wifi d'un ARDrone qui m'envoie des images, je dois donc créer un objet ARDrone que je crée en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ARDrone drone = new ARDrone(InetAddress.getByName("192.168.1.1"));
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ARDrone drone = new ARDrone();
    ce qui revient au même étant donné que ces drones ont par défaut l'adresse 192.168.1.1.

    En parallèle, j'héberge avec ce même programme un serveur sur la connexion ethernet à laquelle je suis relié (qui attribue ses adresses ip avec 192.168.1.x). Ce serveur envoie une image (que je voudrai prendre depuis l'ARDrone) via WebSocket.

    Le problème est que je réussis à faire le transfert d'image via les WebSockets en restant connecté par câble, je réussis à récupérer les images du drone quand je suis connecté que par wifi, par contre quand je combine les deux mon programme ne crée pas bien mon drone (car il prend le 192.168.1.1 de la connection par câble) et je ne reçois donc pas les images de celui-ci, donc impossible de les envoyer via WebSocket.
    Je pensais donc à attribuer un SSID à l'InetAddress pour me connection au "bon" 192.168.1.1, mais je n'ai pas réussi à trouver de solution malgré mes recherches, si vous avez une petite idée je suis preneur ^^

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut
    Bon au final après pas mal de réflexion, je me rends compte que Java est un langage trop "haut niveau" pour pouvoir avoir accès au ssid de la connexion internet ... Mais on peut accéder aux interfaces réseau de l'ordinateur (NetworkInterface.getNetworkInterfaces(). Je suis donc en train de voir s'il est possible de "verrouiller" la connexion internet à utiliser dans une classe, mais pas sûr que ce soit évident ... Si vous avez des conseils n'hésitez pas !

  3. #3
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut
    En fait, il est préférable d'exploiter la méthode getByAddress dans votre cas. En effet, la méthode getByName, lorsqu'elle est utilisée avec l'adresse IP littérale n'est vérifiée qu'au niveau de la viabilité de son format. En d'autre terme, vous pouvez vous amusez à mettre l'adresse IP de votre passerelle par exemple vous n'aurez aucun message d'erreur sauf que votre socket sera connecté à une carte réseau qui n'existe pas...
    En fait, je crois même que dans le cas de deux cartes réseau, quelle que soit l'adresse IP littérale fournie, vous n'aurez en retour que l'InetAddress de la première carte trouvée. Quoi qu'il en soit, comme vous travaillez avec une IP, utilisez plutôt getByAddress.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut
    Merci pour l'information, mais il s'avère qu'au final il est impossible en langage Java de choisir un réseau auquel se connecter ... Java s'occupe juste de chercher la bonne adresse, et il est impossible de lui indiquer une interface via laquelle s'y connecter ...
    Il ne me reste donc plus qu'à paramétrer le drone pour changer son adresse, ou libérer l'adresse 192.168.1.1 sur mon réseau local ...

    Edit : en fait je me suis mal exprimé, avec NetworkInterface il est possible de choisir sur quel réseau diriger ses sockets, sauf que comme j'utilise un objet ARDrone qui m'est donné et qu'il n'est pas possible d'accéder à l'endroit où il utilise les sockets, je ne peux donc pas faire le choix du réseau ...

  5. #5
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut
    Je suis vraiment surpris en vous lisant :
    il s'avère qu'au final il est impossible en langage Java de choisir un réseau auquel se connecter ...
    Et plus je relis votre post, plus je me pose de questions sur votre configuration réseau, et ce indépendamment de Java.
    En effet, votre PC possède deux cartes réseau, chacune connectées à deux réseau différents mais elles exploitent toutes les deux le même plan d'adresses IP ??? Je n'ai jamais vu ça sauf en cas d'erreur. A moins que vous ayez réalisé un bridge entre vos cartes, et encore, dans ce cas, votre ordinateur ne voit plus qu'une carte qui réunit les deux via un routage interne.

    Donc, comme votre problème m'intéresse je vais faire des vérifications de mon côté pour ce qui concerne votre affirmation.
    Du votre, pourriez-vous m'éclairer sur votre configuration réseau ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut
    Bonjour,
    Alors en résumé je dois me connecter en wifi à un ARDrone qui a son adresse en 192.168.1.1 et qui m'attribue l'adresse 192.168.1.2, et d'un autre côté je suis relié par éthernet à un routeur qui est relié à internet, ce routeur a pour adresse 192.168.1.1 et m'attribue l'adresse 192.168.1.19.

    Du coup l'adresse 192.168.1.1 est en "double" et Java contacte celle qui répond le plus rapidement possible, et il semble que ce soit le routeur le plus rapide.

    Sachant que comme je l'ai dit dans un précédent poste :
    - Quand j'ai uniquement la connexion ethernet mon serveur est exposé et une image est envoyée par défaut, mais je ne reçois donc plus d'images de l'ARDrone
    - Quand j'ai uniquement la connexion wifi, je reçois les images du drone mais serveur non exposé
    - Quand j'ai les deux connexions mon programme fonctionne comme quand il était branché par éthernet : serveur exposé mais je ne reçois pas les images du drone.

    J'espère que ces informations pourront vous éclairer sur le problème auquel je suis confronté.

  7. #7
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut
    Très bien.
    J'ai compris. Mais honnêtement, je ne vois pas toujours où est le problème.
    Je vais vous présenter deux codes. Le premier représente une petite routine qui permet de sélectionner une carte en fonction de son adresse MAC, puis de son adresse IP. Le second code, lui, représente la manière dont je créerai moi mes socket pour établir vos connexions :

    Code 1 : Sélection par MAC et IP

    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
    public class DIVERS {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws Exception {
            // Les données à connaître :
            byte[] macADR_ETH = { (byte)0x18 , (byte)0xa9 , (byte)0x05 , (byte)0x2c , (byte)0x54 , (byte)0x44 }; // Ici la Mac adresse fictive 18:A9:05:2C:54:44 a été définie, remplacée la par celle de votre carte ethernet
            String ethIPAdr = "192.168.1.18"; // Adresse IP de la carte Ethernet
            byte[] macADR_WIF = {  (byte)0x8 , (byte)0x0 , (byte)0x27 , (byte)0x0 , (byte)0x8c , (byte)0x90 }; // Ici la Mac adresse fictive 08:00:27:00:8C:90 a été définie, remplacée la par celle de votre carte Wifi
            String wifIPAdr = "192.168.1.2"; // adresse IP de la carte Wifi
            int port = 1234; // N° de port fictif pour l'exemple
            Enumeration<NetworkInterface> enumerateur = NetworkInterface.getNetworkInterfaces(); // Enumération des cartes physique de la machine
            Socket carteEthernet = null, carteWifi = null; // Préparation de deux socket, un pour la carte Ethernet, l'autre pour la carte Wifi
            NetworkInterface carte;
            while (enumerateur.hasMoreElements()) {
                carte = enumerateur.nextElement();
                if (java.util.Arrays.equals(carte.getHardwareAddress(), macADR_ETH)) { // Si vrai, il s'agit bien de la carte Ethernet
                    System.out.println("Carte ethernet trouvée : " + carte.getDisplayName());
                    Enumeration<InetAddress> enumerateurEthernet = carte.getInetAddresses(); // On énumère les adresses de la carte
                    InetAddress adrTmp;
                    while (enumerateurEthernet.hasMoreElements()) {
                        adrTmp = enumerateurEthernet.nextElement();
                        if (adrTmp.getHostAddress().equals(ethIPAdr)) { // On ne s'interresse qu'à celle que l'on attend
                            System.out.println("\tConfiguration : " + adrTmp.getHostAddress());
                            carteEthernet = new Socket(); // Création d'un socket vierge.
                            carteEthernet.bind(new InetSocketAddress(adrTmp, port)); // On associe le socket à la bonne carte
                            System.out.println("\tSocket sur carte Ethernet créé, il ne reste plus qu'à le connecter...");
                            // Ici, notre socket est créé sur la carte réseau locale répondant à la bonne adresse IP et à la bonne Mac adresse.
                            // Il ne reste plus qu'à le connecter via sa méthode connect.
                            // Il suffira de construire un InetSocketAddress qui pointe vers la cible (192.168.1.1) avec le bon port et l'utiliser pour la méthode connect.
                            }
                        }
                    }
                if (java.util.Arrays.equals(carte.getHardwareAddress(), macADR_WIF)) { // Si vrai, il s'agit bien de la carte Wifi
                    System.out.println("Carte wifi trouvée : " + carte.getDisplayName());
                    Enumeration<InetAddress> enumerateurEthernet = carte.getInetAddresses();
                    InetAddress adrTmp;
                    while (enumerateurEthernet.hasMoreElements()) {
                        adrTmp = enumerateurEthernet.nextElement();
                        if (adrTmp.getHostAddress().equals(ethIPAdr)) {
                            System.out.println("\tConfiguration : " + adrTmp.getHostAddress());
                            carteWifi = new Socket();
                            carteWifi.bind(new InetSocketAddress(adrTmp, port));
                            System.out.println("\t Socket sur carte Wifi créé, il ne reste plus qu'à le connecter...");
                            }
                        }
                    }
                }
            if (carteEthernet != null) System.out.println("Carte Ethernet trouvée, socket créé");
            if (carteWifi != null) System.out.println("Carte Wifi trouvée, socket créé");
            }
        }
    Second code : Moi, je ferai comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    InetSocketAddress socketEthernetADR = new InetSocketAddress(new InetAddress("192.168.1.18"), 1234);
    Socket socketEth = new Socket();
    socketEth.bind(socketEthernetADR);
    InetSocketAddress socketWifiADR = new InetSocketAddress(new InetAddress("192.168.1.2"), 1234);
    Socket socketWif = new Socket();
    socketWif.bind(socketWifiADR);
    // Il suffit maintenant d'utiliser socketEth pour se connecter à l'adresse 192.168.1.1 côté ethernet
    // et d'utiliser socketWif pour se connecter à l'adresse 192.168.1.1 côté wifi.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  8. #8
    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
    Citation Envoyé par dau2004 Voir le message
    Bonjour,
    Alors en résumé je dois me connecter en wifi à un ARDrone qui a son adresse en 192.168.1.1 et qui m'attribue l'adresse 192.168.1.2, et d'un autre côté je suis relié par éthernet à un routeur qui est relié à internet, ce routeur a pour adresse 192.168.1.1 et m'attribue l'adresse 192.168.1.19.
    Et c'est ton problème, qui n'a rien à voir avec java. Ton OS a deux cartes réseaux (une wifi, une filaire) représentant 2 réseaux avec le même adressages. Du coup ton OS n'a aucun moyen, à partir d'une IP de destination, de savor si il doit balancer les paquets par ta connexion wifi ou par ta connection filaire. Faut que tu revoie sérieusement ton plan d'adressage pour que le routage fonctionne correctement au niveau de ton OS.

    Soit tu revois la config de ton wifi pour utiliser un autre espace d'adressage (genre 192.168.2.x) soit tu fais ça du coté de ton réseau filaire. Mais en aucun cas une machine ne peux être relié sur deux réseaux ayant des adresses dupliquées sans avoir de problèmes. En termes d'adressage, une adresse ip se doit d'être unique pour que ça marche.

    et le SSID n'a rien à voir là dedans (il permet au niveau radio d'identifier le canal de destination d'un paquet, indépendament de l'adress ip) ni java.

  9. #9
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut
    C'est ce que je suspectais au début...
    Quoi qu'il en soit, comme cet utilisateur a cette "chance" d'avoir à faire à deux réseaux totalement différents, ce que vous dites Tchize, bien que ce soit parfaitement vrai ne s'applique pas ici.
    De ce fait, l'adresse 192.168.1.1 est bien unique sur chaque réseau, et le PC utilisé n'est pas que je sache un routeur, il n'interconnecte pas ces deux réseaux qui en restant différents ne présentent aucun défaut de plan d'adressage. Ce sont simplement deux réseaux différents qui utilisent le même plan d'adressage.
    Cependant, en plaçant un ordinateur "à cheval" sur ces deux réseaux, il est évident que dés lors qu'une adresse existe sur les deux, elle sera injoignable, ou plutôt, ce sera probablement la plus rapide à répondre qui établira la connexion.
    En clair, s'il était possible de mettre l'adresse 192.168.1.40 à l'ARDrone, sans rien changer d'autre ça fonctionnerait sans aucuns problèmes.
    Pour moi, il ne s'agit pas d'un problème réseau, ni d'un problème Java, mais d'un problème d'utilisation des sockets java.
    Le premier code que j'ai présenté faisant intervenir NetworkInterface n'avait pour but que de contredire l'idée de dau2004 que Java ne permettait pas de choisir une carte réseau "matérielement".
    En fait, une instance vierge de Socket, bindée sur la carte exploitant l'adresse 192.168.1.2 permettra à coup sûr de contacter l'ARDrone à l'adresse distante "wifi" 192.168.1.1 ce que démontre le second code présenté.
    Dans son code initial, dau2004 ne précise pas par quelle carte passer, il laisse le soin à Windows de faire le choix. Et comme 192.168.1.1 est joignable sur les deux cartes, c'est la première trouvée par Windows qui sera utilisée. L'ordre des cartes, bien qu'il puisse être modifié dans Windows, est dans ce cas probablement du genre : carte1=eth, carte2=wifi, du coup, sans précisions, 192.168.1.1 sera toujours contacté via la carte eth.
    En créant un Socket vierge via son constructeur sans paramètre, on a la possibilité de définir les deux points de connexion de ce dernier. Le point local, et le point distant. Il suffit donc de lui donner le bon point local, l'adresse côté wifi 192.168.1.2, contacter 192.168.1.1 via se socket se fera à travers la carte wifi, donc vers l'ARDrone.
    En fait, il n'y a pour ce cas précis même pas besoin de toucher à la configuration réseau.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  10. #10
    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
    Citation Envoyé par pursang Voir le message
    C
    En clair, s'il était possible de mettre l'adresse 192.168.1.40 à l'ARDrone, sans rien changer d'autre ça fonctionnerait sans aucuns problèmes.
    Je ne suis pas convaincu, normalement l'OS se base sur l'adresse de destination d'un paquet pour savoir sur quel réseau physique il doit envoyer ces paquets. De plus ton code, même si il utilise des interfaces à un moment, au final ne fait que binder sur certaines adresses. Alors certes, ca te garantie que la partie "expéditeur" de ton paquet correspondra à l'adresse 64 ou 2, mais ça ne présage pas de l'utilisation d'une interface ou d'une autre au niveau de l'OS.



    Et le problème de base ici, c'est que la table de routage indique que 192.168.1.X va vers le wifi et va vers le physique => coincé. Je ne suis pas convaincu que les protocoles de routage impliquent de consulter l'adresse source du paquet IP pour distringuer vers quel périphérique physique faire transiter les paquets. Du coup, je ne pense pas qu'on aie de garanties que, pour la résolution MAC et le routage interne à la winsocks, le bon périphérique soit considéré.

    Bref, à tester, mais franchement, mettre des réseaux séparés au niveau adressage, ca reste bien plus prudent, garder le même réseau, c'est chercher les emmerdes.



    Au minimum, si on veux utiliser 192.168.1.64 pour le wifi, il faut reconfigurer dans le PC les deux carte réseau pour diviser les deux sous réseau... L'un aurait 192.168.1.1 -> 192.168.1.63 avec le masque de sous réseau 64, l'autre aurait la tranche 64-> 127

    Mais on sort largement du cadre de java.

    Pour dire les chose simplement, et sans regarder java, aucune de tes application que je sache n'arrivera à distinguer tes deux réseau et tu va avoir dans tous les cas des merdes dans le routage.

  11. #11
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut
    Je suis entièrement d'accord avec vous Tchize. Mais je continue de penser que ça peut marcher, ce qui dans le cas de DAU2004, s'il n'a pas la possibilité de toucher à sa configuration représentera une solution.
    Donc pour en avoir le cœur net, je vais cessé de supposer et passer à la pratique. J'ai tout ce qu'il faut à la maison pour conditionner une petite plateforme de test répondant aux mêmes conditions d'utilisation que ce cas de figure.
    Cependant, je vais très bientôt partir en congés d'été, je reviendrai vers fin juin. Si le post est encore ouvert, je donnerai tous les résultats de mes tests.
    Mais quoi qu'il en soit, il vaut mieux évidement ne pas faire n'importe quoi avec les réseaux si on désire avoir de la fiabilité et les moyens de dépanner en cas de problème.
    Si vous pouvez et en avez l'envie Tchize, je vous invite à faire de même. Nous pourrons alors comparer les résultats.

    Allez, si c'est aussi le cas pour vous, je vous souhaite de bonne vacances, et à bientôt...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  12. #12
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par dau2004 Voir le message
    Alors en résumé je dois me connecter en wifi à un ARDrone qui a son adresse en 192.168.1.1 et qui m'attribue l'adresse 192.168.1.2, et d'un autre côté je suis relié par éthernet à un routeur qui est relié à internet, ce routeur a pour adresse 192.168.1.1 et m'attribue l'adresse 192.168.1.19.
    Alors ça, cela doit être un beau bazar au niveau des tables internes.

    Table MAC d'abord : 2 adresses MAC différentes pour une seule adresse IP, je ne sais pas comment c'est possible et j'ai peur que ce soit le dernier qui parle qui a raison.

    Table de routage ensuite : ma gateway, c'est laquelle 192.168.1.1 de droite ou 192.168.1.1 de gauche ?

    Non, franchement cette configuration n'est pas bonne. Il faut changer le plan d'adressage du réseau filaire ou du réseau Wifi.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut
    Tout d'abord merci pour toutes les réponses, je m'étais rendu compte de ces problèmes au fur et à mesure, et le problème c'est que je ne peux créer les sockets puisqu'elles sont "intégrées" à l'objet de l'ARDrone sans possibilité d'y accéder (et même avec une classe qui "extends ARDrone" cela pose problème, bref c'est un autre problème ^^), dommage car l'idée de pursang semble fonctionnelle d'après ce que j'avais vu sur internet.


    Citation Envoyé par tchize_ Voir le message
    Bref, à tester, mais franchement, mettre des réseaux séparés au niveau adressage, ca reste bien plus prudent, garder le même réseau, c'est chercher les emmerdes.
    Malheureusement ce n'est pas moi qui "cherche les emmerdes" avec des réseaux de mêmes adresses :
    - L'ARDrone a son réseau par défaut : je suis stagiaire mais pas le seul à utiliser le drone, si je modifie la config ca va poser des problèmes aux autres.
    - Et pour le réseau "général" je ne suis pas l'admin réseaux, et même si je l'étais je me vois mal changer les adresses de tout le monde juste pour moi.

    Du coup je me demandais s'il était simplement possible d'imposer à une classe ou un programme java entier un ssid de connection (je parle du nom sous forme de String, par exemple "Entreprise-réseau" ou "ARDrone-numéro"). Par la suite l'idée d'imposer une interface (type "eth0" ou "eth1") est venue également mais cela est possible uniquement niveau sockets, et malheureusement je n'ai pas accès à ce niveau dans le code.

    Quoi qu'il en soit je pense que l'idée d'interface avec les sockets semblait la plus adaptée mais n'est pas utilisable dans mon cas ...

    Je vais voir ca avec mes responsables, en tout cas merci à tous pour l'aide !

  14. #14
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Personnellement, si j'en arrivais là, je mettrais un NAT entre le réseau filaire et moi. Après tout c'est la méthode retenue pour qu'Internet marche alors que tous les réseaux privés de la planète utilisent tous le même espace d'adressage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. réseau wifi => SSID
    Par youp_db dans le forum Hardware
    Réponses: 6
    Dernier message: 20/05/2009, 13h20
  2. convertion string InetAddress
    Par id.prog dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 21/05/2008, 00h52
  3. Probleme d'InetAddress - ip dynamique
    Par Faiche dans le forum Langage
    Réponses: 1
    Dernier message: 23/03/2007, 16h46
  4. plusieurs bornes wifi pour un seul ssid
    Par boss_gama dans le forum Hardware
    Réponses: 2
    Dernier message: 12/02/2007, 10h07
  5. [debutant] erreur sur InetAddress.getByAddress()
    Par r0d dans le forum Langage
    Réponses: 3
    Dernier message: 08/02/2007, 16h38

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