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

XML/XSL et SOAP Discussion :

générer un fichier XML à partir d'un prog en C


Sujet :

XML/XSL et SOAP

  1. #1
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut générer un fichier XML à partir d'un prog en C
    Bonjour,

    Je vous présente donc mon problème. Dans le cadre d'un projet de fin d'etude je dois développer un sniffer en C avec la librairie WinPcap. N'etant pas un super dévoloppeur (plutot un administrateur réseaux & systèmes) je post le sujet de mon projet de fin d'année afin que l'on puisse me donner quelques pistes.

    Soit le sniffer devra fonctionner sur une architecture Windows 2000 serveur. Il permettra de faire du filtrage de paquets TCP/IP afin de connaître, pour une machine ou un ensemble de machines données, les informations suivantes sur les paquets émis/reçus.

    Informations à afficher :
    Sur IP
    -Version du protocole IP
    -Adresse IP source/destination
    -Longueur de l'en-tête du paquet
    -Longueur totale du paquet
    -Data contenu dans le paquet

    Sur TCP
    -Port local et distant

    De plus, il donnera le nombre total de paquets émis/reçus pendant la période d'observation.

    L'interface de restitution des informations devra être particulièrement simple à utiliser et sera accessible via une interface Web.

    Voila pour le sujet. J'ai commencé à me penché sur WinPcap afin de comprendre comment ça marche. Ce qui pose le plus de problème c'est de savoir comment récuperer les infos affichées par le sniffer. J'ai pensé qu'il fallait créer une base de donnée.

    On m'a conseillé de créer une base en XML. Le problème c'est que je ne sais pas comment exporter les données de mon prog en C dans un fichier XML.
    Le but final étant ensuite d'afficher le contenu de ce fichier XML dans une interface simple et accessible via une interface Web : une interface en JAVA ?

    En vous remerciant d'avance pour votre aide ... (je me replonge dans WinPcap)

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Un fichier XML n'a rien de mystérieux, il s'agit uniquement d'un fichier texte, avec des balises. Donc sniffer avec winpcap, puis écrire un fichier XML avec les informations recues, revient au même que d'écrire ces informations dans un fichier texte. Après la subtilité est dans la récupération de ces données, mais winpcap est vraiment une bonne librairie et bien documentée.

    Ensuite, une foit ton XML écrit, l'avantage c'est que tu peux t'en servir directement sous PHP par exemple pour faire un petit site dynamique d'exploitation des logs. Il y a des fonctions toutes prêtes en PHP pour parser du XML, mais en fait tu aurais également pu avoir un fonctionnement similaire en écrivant des fichiers txt de type csv par exemple. Ou bien de directement utiliser une librairie pour écrire dans une base mysql, que tu pourrais directement interroger en PHP ! Ca c'est le top, car en plus de se contenter de faire de l'affichage tout bête, ça te permettrait de faire des recherches avancées etc..

    Si tu as besoin de manipuler du XML en C, il existe une librairie qui fait partie du projet GNOME, dont voici le lien. Mais je pense que dans ton cas, ça ne servira pas après analyse de ton projet. A+
    K

  3. #3
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    yop,

    Merci KiLVaiDeN pour tes précieuses explications !!

    Je vais me pencher sur la librairie que tu viens de me conseiller. par contre en fouillant un peu sur le site de developpez.com j'ai découvert un article introduisant les CGI (permettant l'échange de données (dans les deux sens) entre un programme et le contenu d'une page Web visualisée par un internaute distant).

    Du coup je ne sais plus quoi choisir pour mon projet. En fait je ne suis un pur newbee en dev, je cherche donc un solution simple et fonctionnelle répondant aux attentes du sujet.

    Merci encore pour toutes vos suggestions et observations

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    présenté comme cela, ton projet comporte deux volets :

    - Une partie acquisition, qui intègre la surveillance du réseau et la consignation des mesures

    - Une partie consultation, permettant d'avoir les résultats affichés dans un navigateur

    Il faudrait que tu donnes plus de détails et de spécifications sur le deuxième volet, c'est ce qui va en grande partie conditionner le choix du mode de stockage des données.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonjour GrandFather,

    Voici le contenu du sujet :
    le sniffer devra fonctionner sur une architecture Windows 2000 serveur. Il permettra de faire du filtrage de paquets TCP/IP afin de connaître, pour une machine ou un ensemble de machines données, les informations suivantes sur les paquets émis/reçus.

    Informations à afficher :
    Sur IP
    -Version du protocole IP
    -Adresse IP source/destination
    -Longueur de l'en-tête du paquet
    -Longueur totale du paquet
    -Data contenu dans le paquet

    Sur TCP
    -Port local et distant

    De plus, il donnera le nombre total de paquets émis/reçus pendant la période d'observation.

    L'interface de restitution des informations devra être particulièrement simple à utiliser et sera accessible via une interface Web.


    Voila ce qui m'est demandé (en vous rappelant que suis un petit débutant ... je cherche donc qq chose de simple )

    Merci à vous ...

  6. #6
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Utilise PHP pour exploiter tes données, en très peu de temps tu auras quelques pages fonctionnelles pour ton site d'exploitation de logs. CGI c'est trop de complication à mon avis.

    Sinon, GrandFather a tout à fait raison ! La partie acquisition dépendra de la partie consultation, en tout cas des spécifités requises de celle-ci. Par exemple, si dans ton projet on te demande de faire un petit moteur de recherche, ou bien un stockage en base de données, il serait interessant de te pencher sur une librairie s'interfaçant avec une base. Après, si il ne s'agit que d'une exploitation simpliste des logs pour les afficher sur un site, le XML est une bonne solution !

    Petite remarque : en fonction du temps que tu as pour faire ton projet et de l'objectif final, je te conseille de faire au plus simple, mais de bien structurer ton code, notamment pour la partie acquisition; pour cela, j'imagine bien plusieurs parties : 1 partie pour les "structures de données", une partie pour l'acquisition proprement dite qui fera le remplissage des structures précédement citées, et une dernière partie pour l'écriture sur disque, en exploitant les structures.

    L'avantage d'une telle architecture, est que ça te permettra de débattre sur l'évolutivité de ta solution. En effet, tu pourras faire evoluer ton programme en ne changeant que la partie écriture sur disque, pour faire une écriture en base par exemple ! C'est je pense ce qui pourrait donner un plus à ton projet.

    Bonne chance !
    K

  7. #7
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Re KiLVaiDeN

    Concernant les 2 parties : acquisition et consultation.

    Pour la partie acquisition il m'est imposé de développer le sniffer en langage C avec la librairie WinPcap.

    Pour la partie consultation, aucun langage ne m'est imposé ! Il m'est juste demandé une interface de restitution des informations particulièrement simple à utiliser et accessible via une interface Web. Je suis donc libre de choisir la solution qui me plait.

    Sachant que je recherche la solution la plus simple à mettre en place en terme de consultation

    Merci encore à vous tous

  8. #8
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par filou18fr
    Sachant que je recherche la solution la plus simple à mettre en place en terme de consultation
    La solution la plus simple : générer une page HTML statique contenant le résultat des mesures. Pas de base de données ou de librairie XML à utiliser.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  9. #9
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Que vous a-t-on appri en matière de "restitution des données" ?

    Si on ne vous a rien montré -> cf GrandFather HTML proposal !
    Si on vous a montré des choses, notamment en PHP, par exemple des scripts pour parser du XML, ou autre, il faudra surement te pencher la dessus pour avoir une bonne note ! N"oublie pas que les profs aiment que tu réutilises ce qu'on t'a apprit, donc si on t'a montré comment faire du PHP, et que tu le réutilises pour ton projet, tu seras un winner !
    K

  10. #10
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    HéHé ,

    malheureusement en matière de "restitution des données" on ne m'a rien appris (ou pas encore).
    Si j'opte pour PHP j'imagine qu'il faudra que je monte un serveur Web (Apache ...) ?
    Du coup pensez vous qu'il soit possible dans la partie consultation mettre en place qq chose en Java qui lirai une page HTML générée contenant le résultat des mesures (comme m'a préconisé GrandFather).

    Avec une solution en Java je n'aurai pas de serveur web à crée ? (dites moi si je me trompe).

    Pour vous que serait il le plus simple à mettre en place pour quelqu'un qui ne connait ni PHP, ni Java ?

    Une fois de plus je tiens à vous remercier pour votre aide et pour votre amabilité

  11. #11
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Tout dépend de ce que signifie l'expression "interface Web".

    Si cela veut dire que les résultats doivent pouvoir s'afficher dans un navigateur Web, ta page HTML générée peut être consultée localement si un navigateur est installé sur la machine où s'exécute ton sniffer. Pas besoin d'installer Apache ou un autre serveur HTTP, ou de programmer quoi que ce soit d'autre.

    Si par contre ça signifie que les résultats sont consultables par plusieurs utilisateurs au travers d'un Intranet ou même d'Internet, il faut effectivement prévoir leur publication par un serveur HTTP.

    Au vu de l'énoncé du projet, il me semble que l'essentiel des efforts doit être consacré à l'acquisition des données, pas de faire un site Web écrit en PHP ou en Java. Maintenant, comme le dit KiLVaiDeN, si tu disposes d'un peu de temps d'avance tu peux te pencher la-dessus pour grapiller quelques points en plus, mais ça me paraît franchement subsidiaire...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Générer un fichier XML à partir d'oracle forms
    Par FST_PFE dans le forum Forms
    Réponses: 1
    Dernier message: 10/06/2008, 14h18
  2. générer un fichier xml à partir d'un gros fichier plat
    Par ybennani dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 16/05/2007, 10h47
  3. [PL/SQL] générer un fichier xml à partir du programme pl/sql
    Par moneyinthebank dans le forum PL/SQL
    Réponses: 2
    Dernier message: 15/06/2006, 17h09
  4. générer un fichier xml à partir xsl ou xslt
    Par sarah1 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/05/2005, 17h57
  5. Réponses: 2
    Dernier message: 27/05/2004, 00h40

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