Droit d'utilisation sur un programme
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 :
Citation:
1.ERROR no suitable device found
alors j'ai essayer en root, et la j'ai :
Citation:
Nombre del dispositivo: eth0
Direccion de Red: 172.16.50.0
Mascara de Red: 255.255.255.0
Comment faire pouvoir utiliser mon programme avec n'importe quel utilisateur ?
Voici mon script :
Code:
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;
} |
et je précise que je suis sur linux ubuntu 8.04