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

Boost C++ Discussion :

ASIO liste d'interfaces


Sujet :

Boost C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Points : 8
    Points
    8
    Par défaut ASIO liste d'interfaces
    Bonjour,

    Je cherche comment utiliser asio pour me donner la liste des interfaces ip disponibles:

    J'ai essayé en utilisant resolver & query, mais j'ai l'impression que je n'utilise pas les bonnes fonctions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    boost::asio::ip::udp::resolver resolver(io_service);
    boost::asio::ip::udp::resolver::query query(boost::asio::ip::udp::v4(), "", "");
    boost::asio::ip::udp::resolver::iterator iterator = resolver.resolve(query);
    boost::asio::ip::udp::resolver::iterator end;
     
    while(iterator != end) {
            std::cout << (*iterator).endpoint().address().to_string() << std::endl;
            ++iterator;
    }

    Merci de votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 190
    Points : 219
    Points
    219
    Par défaut
    Salut,

    Si c'est le nom des interfaces réseaux disponibles sur ton ordinateur que tu souhaites obtenir, je ne pense pas que boost.Asio te sera d'une grande aide.
    Si tu utilises un système GNU/Linux regarde du côté de if_nameindex. Si tu utilises Windows nul doute que des fonctions existent pour faire ce que tu veux (msdn est ton ami).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    En fait, je cherche surtout à obtenir la liste des IP disponibles par interface reseau.

    Pour l'instant j'utilise une fonction en C avec la struct ifreq.
    (Je programme sous Linux).

    Ensuite je passe cette liste d'IP à une fonction asio, qui broadcast un message UDP sur chaque interface, et attend une reponse pour savoir si un serveur est dispo, et sur quelle interface.

    Bref je pensais que asio, pouvais m'aider à me passer de ma fonction 'ifreq'.

    Eventuellement, y'a t'il un moyen, en asio, broadcaster un message sur toutes les interfaces, et ecouter les réponse?

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Tout ce qui peut te servir dans Asio se trouve ici : http://www.boost.org/doc/libs/1_37_0...reference.html

    Quoiqu'il arrive, si t'as une IP, un port, par exemple, tu peux envoyer un message.
    Par contre, les tâches très spécifiques ne sont peut-être pas implémentées dans Asio (libre à toi d'en proposer à rajouter !) et dans ce cas c'est à toi de fournir le nécessaire à Asio pour intéragir avec des commandes système.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Alp Voir le message
    Tout ce qui peut te servir dans Asio se trouve ici : http://www.boost.org/doc/libs/1_37_0...reference.html
    Merci, je connaissais l'adresse.

    Citation Envoyé par Alp Voir le message
    Quoiqu'il arrive, si t'as une IP, un port, par exemple, tu peux envoyer un message.
    Mon problème c'était justement de connaitre l'IP: comme je veux envoyer un message de broadcast sur toutes les interfaces de ma machine, je dois d'abord scruter les interfaces disponibles.

    Citation Envoyé par Alp Voir le message
    Par contre, les tâches très spécifiques ne sont peut-être pas implémentées dans Asio (libre à toi d'en proposer à rajouter !) et dans ce cas c'est à toi de fournir le nécessaire à Asio pour intéragir avec des commandes système.
    C'est ce que je fais actuellement: Je scrute les IP disponibles sur ma machine avec if_req, en C. Puis j'envois la liste à asio en C++.
    Je pensais juste que asio avait peut-être des fonctions prédéfinies pour cette tache.
    Apparement non.

    Merci pour les réponses.

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    A ma connaissance ça n'existe pas en "tout fait".
    Mais tu peux C++iser ton utilisation de ifreq en te basant sur un basic_stream de Asio par exemple, tu vois ce que je veux dire ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Alp Voir le message
    Mais tu peux C++iser ton utilisation de ifreq en te basant sur un basic_stream de Asio par exemple, tu vois ce que je veux dire ?
    Non, Je vois pas, ma connaissance de asio est un peu faible.
    Mais je vais chercher dans cette voie.

    Merci.

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/05/2012, 00h03
  2. Listes et interfaces
    Par Antoine_935 dans le forum Langage
    Réponses: 8
    Dernier message: 28/09/2009, 13h25
  3. List et Interface
    Par farid_974 dans le forum C#
    Réponses: 3
    Dernier message: 19/08/2009, 13h51
  4. Réponses: 17
    Dernier message: 02/07/2009, 18h44
  5. Liste des interfaces
    Par NiamorH dans le forum C#
    Réponses: 2
    Dernier message: 22/10/2008, 17h42

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