[C] fonction pour récupérer l'adresse MAC de eth0

fonction pour récupérer l'adresse MAC de eth0 [C] - C++ - Programmation

Marsh Posté le 16-05-2003 à 10:12:21    

bonjour tout le monde.
je suis sous Linux et j'aimerais écrire en C une fonction pour récupérer l'adresse MAC de ma carte réseau eth0. ça doit être possible avec ioctl mais pour l'instant j'y comprend rien :sweat:  
I need HELP please

Reply

Marsh Posté le 16-05-2003 à 10:12:21   

Reply

Marsh Posté le 16-05-2003 à 10:41:58    

nikosaka a écrit :

bonjour tout le monde.
je suis sous Linux et j'aimerais écrire en C une fonction pour récupérer l'adresse MAC de ma carte réseau eth0. ça doit être possible avec ioctl mais pour l'instant j'y comprend rien :sweat:  
I need HELP please  


 
personellement, voici comment je fais:
 

Code :
  1. char buffer[6];
  2. int s;
  3. struct ifreq ifr;
  4. memset( buffer, 0, 6 );
  5. s = socket(AF_INET, SOCK_DGRAM, 0);
  6. if(s==-1)
  7.   return -1;
  8. snprintf(ifr.ifr_name, IFNAMSIZ-1, "%s", "/dev/eth0" );
  9. if (ioctl(s, SIOCGIFFLAGS, &ifr)==0) {
  10.   if (ioctl(s, SIOCGIFHWADDR, &ifr) == 0)
  11.     memcpy( buffer, ifr.ifr_hwaddr.sa_data, 6);
  12. close(s);


 
je ne sais plus s'il faut mettre "eth0" ou "/dev/eth0". Je crois que c'est /dev/eth0. La liste des devices reseau est dans /proc/net/dev.
Je te laisse chercher plus d'info sur ioctl et SIOCGIFHWADDR pour en savoir plus.

Reply

Marsh Posté le 16-05-2003 à 10:56:25    

merci  ;)

Reply

Marsh Posté le 16-05-2003 à 17:47:12    

ben en fait après avoir testé :
if (ioctl(s, SIOCGIFFLAGS, &ifr)==0) n' est pas vrai.
si quelqu'un a une idée je suis preneur  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed