1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| #include <stdlib.h>
#include <stdio.h>
#include <pcap/pcap.h>
#include <net/if.h>
int main(int argc,char *argv[])
{
char *dev,errbuf[PCAP_ERRBUF_SIZE];
pcap_t *descripteur;
bpf_u_int32 net,mask;
/* Trouver l'interface de capture */
if(argv[1] == NULL)
{
dev = pcap_lookupdev(errbuf); /* Retourne l'interface réseau par défaut */
fprintf(stderr,"Votre interface de capture est: %s\n",dev);
}
else
{
dev = argv[1]; /* Le nom de l'interface est passé comme paramètre */
fprintf(stderr,"Votre interface de capture est: %s\n",dev);
}
/* Déclarer le descripteur de paquet */
descripteur = pcap_open_live(dev,1514,IFF_PROMISC,1000,errbuf);
/* Affecter une adresse IP et un masque pour la carte réseau */
if(pcap_lookupnet(dev,&net,&mask,errbuf)==-1){
fprintf(stderr,"ERREUR @IP ou @RESEAU pour %s\n",dev);
}
else {
printf("Adresse réseau:%s\n",inet_ntoa(net));
}
int x,y,z,w;
x = (mask&0x000000ff)>>0;
y = (mask&0x0000ff00)>>8;
z = (mask&0x00ff0000)>>16;
w = (mask&0xff000000)>>24;
printf("Masque réseau: %d.%d.%d.%d\n",x,y,z,w);
return EXIT_SUCCESS;
} |
Partager