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 !!!