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

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 5
    Points : 2
    Points
    2

    Par défaut Effectuer une requête PING via xCode

    Bonjour,

    Voici l'énoncé de mon exercice :

    Ecrire une application qui permet de faire des « ping » sur une adresse de classe C. Vous
    choisirez une plage d’adresses sur laquelle vous souhaitez travailler. Ensuite l’application
    avec l’adresse fournie (192.168.15x.xxx) enverra des requêtes ICMP aux machines
    désignées. On ne testera par si la machine cible est active ou pas.

    Le problème est que, pour réaliser cet exercice je ne dispose que d'xCode et je n'ai donc pas accès à la bibliothèque <windows.h> et ainsi de suite ..
    J'ai réalisé un script permettant d'ouvrir le terminal et d'y effectuer une requête PING, mais je ne sais pas comment je peux faire pour lancer le script à partir d'un programme en C.

    Merci d'avance !

  2. #2
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    mai 2010
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : mai 2010
    Messages : 418
    Points : 1 493
    Points
    1 493

    Par défaut

    Bonjour,
    Deux options s'offrent à vous la première et d'utiliser les primitifs systèmes de votre système pour lancer votre script. La seconde est de réellement d'écrire un programme entier de "ping" (RAW) donc il faut avoir préalablement des notions de programmation réseaux et des protocoles en fonction de l'environnement sur lequel votre application va fonctionner (UNIX, GNU/Linux, Windows ou Mac os X).
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 5
    Points : 2
    Points
    2

    Par défaut

    Bonjour,

    Merci pour votre réponse. Je pense donc utiliser les primitifs systèmes en utilisant notemment la fonction execve mais je ne comprends pas, même en regardant la doc les arguments à rentrer. J'ai simplement compris qu'il fallait y indiquer le chemin du script (chose que je fais) ainsi qu'un/des argument(s) mais ne sachant pas quoi rentrer j'y rentre simplement NULL en paramètres.

    Merci d'avance et désolé si je ne m'exprime pas correctement, je n'ai que très peu de connaissances vis a vis des primitifs systèmes..

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    3 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 3 935
    Points : 10 884
    Points
    10 884
    Billets dans le blog
    1

    Par défaut

    Bonjour,

    je n'ai donc pas accès à la bibliothèque <windows.h>
    En quoi c'est important ? L'énoncé de l'exercice parle de ce fichier ?

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    5 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 5 480
    Points : 23 817
    Points
    23 817

    Par défaut

    xCode c'est un IDE, windows.h un header spécifique à Windows. La relation entre eux ? Aucune.
    Et pour faire un ping, il faut un socket. Chaque plateforme a sa lib de socket, mais même sous Windows on n'inclue pas directement windows.h pour travailler avec les sockets.
    Ou alors tu dis de manière on ne peut plus maladroite que tu es sous Mac ?
    Du coup le problème est..?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 5 121
    Points : 16 852
    Points
    16 852

    Par défaut

    Sinon, libcurl doit pouvoir faire l'affaire (comme à chaque fois qu'il s'agit d'envoyer ou recevoir quelque chose sur le réseau)
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 5
    Points : 2
    Points
    2

    Par défaut

    Je parle de Windows.h car cette bibliothèque en C permet d'avoir accès à la fonction System() et ainsi de suite. Le but de mon exercice est, d'à partir d'xCode réaliser une requête vers une adresse IP.
    Lisez de nouveau la consigne de l'exercice sinon !

  8. #8
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 5 121
    Points : 16 852
    Points
    16 852

    Par défaut

    La fonction system permet de faire exécuter une commande à l'OS. C'est pratiquement toujours une mauvaise solution.

    Cherche plutot l'API de socket à ta disposition (celle fournit par l'OS), inclue le header correspondant, et lit la documentation du protocole ICMP.

    Autre approche, pose ces questions à celui qui t'a donné l'exercice.
    Celà lui montrera ton implication, ta volonté de bien faire (ou du moins comme il veut).
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    5 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 5 480
    Points : 23 817
    Points
    23 817

    Par défaut

    system est dans stdlib.h et non dans Windows.h, mais bon encore faut-il faire une recherche et trouver la doc http://www.cplusplus.com/reference/cstdlib/system/
    Et si l'exercice consiste à utiliser system en C (chose que non ton énoncé ne dit pas, pas plus qu'il ne parle de xCode), c'est totalement stupide parce qu'un batch/shell/cmd est largement préférable.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur systèmes embarqués
    Inscrit en
    juin 2009
    Messages
    3 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur systèmes embarqués

    Informations forums :
    Inscription : juin 2009
    Messages : 3 935
    Points : 10 884
    Points
    10 884
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par Miguel17 Voir le message
    Lisez de nouveau la consigne de l'exercice sinon !
    OK mec !

    Ecrire une application qui permet de faire des « ping » sur une adresse de classe C. Vous
    choisirez une plage d’adresses sur laquelle vous souhaitez travailler. Ensuite l’application
    avec l’adresse fournie (192.168.15x.xxx) enverra des requêtes ICMP aux machines
    désignées. On ne testera par si la machine cible est active ou pas.
    Oh mince ! Pas de trace de windows.h ni de system()

    Comme les autres, je pense que tu pars dans la mauvaise direction, ou alors je serai surpris. Ici, le but est de recoder la commande ping et non simplement d'y faire appel. C'est en tout cas ce que je comprends par "[envoyer] des requêtes ICMP".

    Cet exercice est-il dans le cadre d'un cours de C pour débutant ou d'un cours de réseau ?

Discussions similaires

  1. Comment effectuer une requête http post ?
    Par Turtle_fr dans le forum 4D
    Réponses: 10
    Dernier message: 07/09/2006, 02h25
  2. Réponses: 4
    Dernier message: 06/09/2006, 15h04
  3. Effectuer une requête
    Par Telemak dans le forum Bases de données
    Réponses: 23
    Dernier message: 19/06/2006, 14h28
  4. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 06h54

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