bonjour,
voilà j'ai compilé flex, puis libpcap sans problème apparent.
puis j'ai essayé un petit tuto qui liste les carte réseau et donne masque sous-réseau :
je sais que le code marche car j'ai compiler et testé une première fois sur un linux.
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 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> 20 #include <pcap.h> //include a libpcap 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 mensa jes de error bpf_u_int32 netp; // direcion de red en modo raw 30 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; }
Arrivé sur OSX, la compilation a fonction sans pb, mais il ne trouve pas de carte réseaux. Il a t'il quelque chose a faire pour faire fonctionner ce script sur mac ?
Partager