bonjour,
je suis débutant et j'essaye de suivre un tuto sur libpcap pour la capture de paquet,
mais je n'arrive pas a compiler les exemples.J'ai les erreurs suivante :
voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ gcc -c toto.c -lpcap gcc: -lpcap: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
je suis sur linux et j'utilise gcc. est ce que quelqu'un peut m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
44
45
46
47
48
49 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <pcap.h> int main(int argc, char **argv) { char *net; // direccion de red char *mask; // mascara de subred char *dev; // nombre del dispositivo de red int ret; // codigo de retorno char errbuf[PCAP_ERRBUF_SIZE]; // buffer para mensajes de error bpf_u_int32 netp; // direcion de red en modo raw bpf_u_int32 maskp; // mascara de red en modo raw struct in_addr addr; if ((dev = pcap_lookupdev(errbuf))== NULL){//conseguimos la primera interfaz libre printf("ERROR %s\n",errbuf); exit(-1); } printf("Nombre del dispositivo: %s\n",dev); //mostramos el nombre del dispositivo if ((ret = pcap_lookupnet(dev,&netp,&maskp,errbuf))==-1){ //consultamos las direccion de red y las mascara printf("ERROR %s\n",errbuf); exit(-1); } addr.s_addr = netp; //Traducimos la direccion de red a algo legible if ((net = inet_ntoa(addr))==NULL){ perror("inet_ntoa"); exit(-1); } printf("Direccion de Red: %s\n",net); addr.s_addr = maskp; //Idem para la mascara de subred mask = inet_ntoa(addr); if ((net=inet_ntoa(addr))==NULL){ perror("inet_ntoa"); exit(-1); } printf("Mascara de Red: %s\n",mask); return 0; }
Partager