IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèque standard C Discussion :

Libpcap sur OSX


Sujet :

Bibliothèque standard C

  1. #1
    Membre habitué Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Points : 155
    Points
    155
    Par défaut Libpcap sur OSX
    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 :
    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; 
    }
    je sais que le code marche car j'ai compiler et testé une première fois sur un linux.
    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 ?
    ---
    "Rien n'est impossible"
    http://journaldeguillaume.blogspot.com

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Tu es bien root sur ta machine?
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  3. #3
    Membre habitué Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Points : 155
    Points
    155
    Par défaut
    oui, j'execute le programme en route.
    le programme a les droit de mon user, mais je l'execute en root en faisant :
    Il est vrais que j'ai esayé de modifier le propriétaire du script en faisant un chown root:root, mais apparement sur mac ça ne mrche pas ! Car ça ne doit pas être l'User Root

    //EDIT ---------------------
    C'est bon j'ai trouvé, en fait il ne suffit pas d'executer le programme en root. il faut aussi que le programme appartienne a l'utilisateur root et au groupe admin sur mac.

    en faisant tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chown root:admin Mon_script
    merci pour la piste
    en faite sur linux c'est root:root et sur mac c'est root:admin pourkoi ? Je demanderais a steeve la prochaine fois
    ---
    "Rien n'est impossible"
    http://journaldeguillaume.blogspot.com

  4. #4
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    de rien, pense à la balise résolu.
    Cordialement.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. child_process sur OSX
    Par abraxis dans le forum NodeJS
    Réponses: 0
    Dernier message: 08/01/2013, 22h44
  2. recompiler PHP 5.2.8 sur OSX - Leopard
    Par Giantrick dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/06/2009, 23h38
  3. Gel 4D sur OSX (4D ne répond pas)
    Par ciliaris dans le forum 4D
    Réponses: 4
    Dernier message: 09/06/2009, 00h25
  4. FFmpeg sur OSX
    Par SpongeBob dans le forum C++
    Réponses: 1
    Dernier message: 17/07/2008, 09h18
  5. [LOGICIEL] Accès distant sur OSX
    Par Jérémy Lefevre dans le forum Apple
    Réponses: 5
    Dernier message: 02/10/2007, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo