begin process at 2012 02 10 07:38:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

snifer pcap


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

snifer pcap

samedi 28 mai 2005 à 13:25:58 | snifer pcap

thebadskull

Bonjour voilà je suis entrain de faire un  sniffeur de paquets en C avec la librairie pcap
Lorsque je recupére mes paquets je les affiches avec :

<adresse mac source> --> <adresse mac dest>  type : <type>
et j'aimerais convertir les adresse mac en adresse IP, j'ai cherché et j'ai que l'on pouvais le faire que lors d'un ping.
et donc afficher

<IP Source> --> <IP Dest> type : <type>

voilà je vous montre un bout de code ::

--Affichage :
[code]
//Structure
typedef struct {
u_char ether_dhost[6]; //destination host (adresse de destination)
u_char ether_shost[6]; //source host (adresse source)
u_short ether_type;    //type de trame
}ether_header;


//Avec mon Paquet qui est :
paquet = (u_char *) pcap_next(descriptPaquet, &paquethdr);



void print_ether_header(ether_header *paquet)
{
int i;
struct ip *paquetip;
for (i=0;i<6;i++)
    {
    printf("%.2x",paquet->ether_shost[i]);
    if (i!=5) printf(":");
    }
printf(" -> ");
for (i=0;i<6;i++)
        {
        printf("%.2x",paquet->ether_dhost[i]);
        if (i!=5) printf(":");
        }
printf(" type: %.4x",paquet->ether_type);

}



[/code]


Je vous remercie beaucoup !!!



samedi 28 mai 2005 à 15:02:04 | Re : snifer pcap

DeAtHCrAsH

Yep,
L'adresse MAC est une adresse physique unique au monde pour une matériel.
L'adresse IP est une adresse logique unique qui t'ai donnée par ton FAI.

Il n'y a donc aucune correspondance entre ces deux types d'adresse.
Il te faudrait revoir TCP/IP avant de faire un sniffer, ca te serai très utile.
Il y a de bon bouquin la dessus.


Shell
dimanche 29 mai 2005 à 13:49:07 | Re : snifer pcap

thebadskull

ouai je sais ^^
mais en recuperant mon paquet je peut le mettre sous forme d'une ip...
avec cette structure d'ip :

/* IP header */
struct sniff_ip {
    #if BYTE_ORDER == LITTLE_ENDIAN
    u_int ip_hl:4, /* header length */
    ip_v:4; /* version */
    #if BYTE_ORDER == BIG_ENDIAN
    u_int ip_v:4, /* version */
    ip_hl:4; /* header length */
    #endif
    #endif /* not _IP_VHL */
    u_char ip_tos; /* type of service */
    u_short ip_len; /* total length */
    u_short ip_id; /* identification */
    u_short ip_off; /* fragment offset field */
    #define IP_RF 0x8000 /* reserved fragment flag */
    #define IP_DF 0x4000 /* dont fragment flag */
    #define IP_MF 0x2000 /* more fragments flag */
    #define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
    u_char ip_ttl; /* time to live */
    u_char ip_p; /* protocol */
    u_short ip_sum; /* checksum */
    in_addr ip_src,ip_dst; /* source and dest address */
};


là j'avance un peu mais lors de l'afficha de mon ip_src et ip_dst j'ai un segmentation fault avec un %s et avec un %x j'ai rien qui ressemble à une ip...
il ne faut pas la convertir pour l'afficher??
style avec inetoa ou otre je connai pas trop ces fonctions...

mardi 4 octobre 2005 à 09:13:12 | Re : snifer pcap

darunia

Salut,

Tu as surement trouvé la solution depuis le temps, mais pour convertir une adresse MAC en adresse IP, il faut utiliser le protocole ARP (Adress Resolution Protocol).
Regarde dans l'aide de la commande arp (si tu es sous unix)

D@runia


Cette discussion est classée dans : type, printf, paquet, pcap, ether


Répondre à ce message

Sujets en rapport avec ce message

conflit de type dans un tableau [ par pausecpp ] j'ai eu une réponse inattendue. voici un partie du code (l'essentiel ;) ):...#define N 5....float V[N]={0}; int i;for(i=0; i{printf("\nEntrer la coord Un pb lors d'allocation de 3eme elts de type [ par eemikhm ] Bonjour,le programme suivant est écrit et exécuter par DEVC++. Pas d'erreurs de compilation, le problème c'est que lors de l'exécution de la 4eme itér exercices à résoudre [ par jomsow ] bonjour je suis débutant en C svp aidez moi à résoudre ces deux exercices : Exercice 1: Modifier le programme suivant de telle sorte qu’il affiche Un problème avec l'union en C [ par IHECinformaticien ] Bonsoir/Bonjour, dans le code source au dessous j'ai défini une union qui contient 3 variables: une de type entier, l'autre de type réel et la dernièr programme en C de gestion [ par fizou1989 ] bonjour; j ai besoin d 'aide je suis entrain de realiser un mini projet GMAO gestion de maintenance assistee par ordinateur , j ai realiser un progr aide pour un mini projet [ par IMFM ] salut, dans le cadre de mes etudes j'ai un projet d'une entreprise qui se lance dans la vente des materiels Type 1 : Informatiques Type 2 : Électrique suivi d'un rayon [ par mb89ma ] bonjour à tous, j'ai un exercice informatique sur lequel je bloque. Il faut réaliser le suivi d'un rayon au travers une conduite de 1 cm de large et d fonction random sur le type double de 1.0 jusqu'a double last [ par tajushile ] Bonjour j'ai besoin de créer une fonction pour générer aléatoirement des valeur du type double: j'ai fais le bout de code suivant: --------------- probléme de déplacement d'une case a une autre dans un tableaux de type char* [ par mlikos ] Bonjour, est ce qq1 peut m'aider a résoudre ce problème : #include #include #include struct coordonnees { int x; int y; }; typedef struc Tableaux - Gestion dynamique de la mémoire [ par Smanyx ] Salut ! Je voudrais écrire un programme qui accepte des noms saisis au clavier et les amasse dans un tableau. Comme les noms sont entrés dans un bouc


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,512 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales