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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 0
    Points
    0

    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 éprouvé Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    mai 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : mai 2010
    Messages : 338
    Points : 1 158
    Points
    1 158

    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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 0
    Points
    0

    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 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : juin 2009
    Messages : 3 583
    Points : 9 408
    Points
    9 408
    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
    4 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 4 705
    Points : 19 395
    Points
    19 395

    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 022
    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 022
    Points : 16 812
    Points
    16 812

    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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2017
    Messages : 3
    Points : 0
    Points
    0

    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 022
    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 022
    Points : 16 812
    Points
    16 812

    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
    4 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 4 705
    Points : 19 395
    Points
    19 395

    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 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : juin 2009
    Messages : 3 583
    Points : 9 408
    Points
    9 408
    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