rebonjour,
j'ai juste un petit problème de droit lorsque j'execute mon programme, je suit un tuto sur libpcap et le but du script est de lister les interface réseau.
le truc est que lorsque j'execute mon prog avec le user normale, ilme dit :alors j'ai essayer en root, et la j'ai :1.ERROR no suitable device foundComment faire pouvoir utiliser mon programme avec n'importe quel utilisateur ?Nombre del dispositivo: eth0
Direccion de Red: 172.16.50.0
Mascara de Red: 255.255.255.0
Voici mon script :
et je précise que je suis sur linux ubuntu 8.04
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("1.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("2.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