Forum Programmation.c comment récupérer l'adresse mac du pc ou s'execute le programme
J'essayes depuis 48h de trouver un bout de code qui me permettrait de récupérer l'adresse mac. Je n'ai à ce jour pas trouvé grand chose ! J'espère que quelqu'un a déjà programmé une fonction comme ca ?
# OS ?
Posté par Frédéric COIFFIER . Évalué à 2.
# Noyau?
Posté par niol (site web personnel) . Évalué à 2.
ARP?
RFC826?
# Commentaire supprimé
Posté par Anonyme . Évalué à 4.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: http://www.brics.dk/~kasperd/comp.os.linux.development.faq.html
Posté par bue . Évalué à 1.
Un GRAND merci !
[^] # Re: http://www.brics.dk/~kasperd/comp.os.linux.development.faq.html
Posté par cho7 (site web personnel) . Évalué à 2.
ce code C fait froid dans le dos :)
# Euh
Posté par cho7 (site web personnel) . Évalué à 2.
Mais je pointerai du doigt 2 choses :
_Et si le PC a plusieurs cartes réseau ?
_Et si le PC n'a pas de carte réseau ?
Autrement si c'est pour une plateforme linux, pourquoi ne pas récuperer le resultat de /sbin/ifconfig et d'en extraire l'adresse ? en python/perl/bash ca se fait assez simplement non ?
[^] # Re: Euh
Posté par bue . Évalué à 1.
Pour tout te dire, ce code ce destine à Thinstation, soit une version minimaliste de linux, d'où le besoin d'écrire le programme en c (parce que d'ajouter python ou perl augmenterai la taille de l'OS, et ne serait pas forcement performent sur une toute vieille becane)
En fait, dans mon cas, l'interface qui m'intéresse est toujours eth0, donc ca simplifie le probleme...
De chercher l'information dans ifconfig, j'y ai aussi pensé, mais quand je me suis apercu qu'il n'y avait pas de fonctions substring et autres et qu'il fallait passer par la mémoire etc... j'avoue que j'ai pris peur ;) et je me suis aussi dit qu'il devait bien y'avoir un moyen plus direct de faire ca et que c'était un peu bête d'utiliser un programme (ifconfig) qui cherche aussi l'information quelque part... pour ensuite rechercher dans la sortie standard... conceptuellement je trouvais ca un peu dommage, mais si tu pense que c'est le mieux... je vais bien y etre obligé.
# ioctl et SIOCGIFFLAGS
Posté par SoWhat . Évalué à 1.
Avec ça, tu récupères les @MAC et les @IP de toutes tes interfaces réseaux, y compris les loopback.
[^] # Re: ioctl et SIOCGIFFLAGS
Posté par bue . Évalué à 1.
[^] # Re: ioctl et SIOCGIFFLAGS
Posté par SoWhat . Évalué à 1.
Alors franchement t'as pas du bien chercher alors parce que avec 'ioctl SIOCGIFFLAGS MAC' , ya des exemples pour Linux/Solaris/HP-UX dans la première pages des résultats.
[^] # Re: ioctl et SIOCGIFFLAGS
Posté par bue . Évalué à 1.
Lorsque j'ai vu google, je me suis dis ca y est c'est typique, encore quelqu'un qui me renvoie bêtement sur Internet comme si je n'avais jamais touché de navigateur de ma vie...
Donc encore une fois "excuses-moi", et merci pour ta réponse
# Probleme d'overflow ?
Posté par bue . Évalué à 1.
Le problème c'est que le sprintf provoque un buffer overflow, j'ai des problèmes pour comprendre ces erreurs là.
D'après ce que j'ai compris, il vaut mieux mettre les valeurs dans un buffer :
char macaddress[128];
sprinf(macaddress...);
mais à ce moment là comment faire pour le return, ca n'a pas l'air de marcher ! il faut utiliser une autre commande ?
Pour que je comprenne un peu mieux, quelle est la taille maximum d'un char * ?
Désolé d'assommer tout le monde avec mes questions de newbie, mais mon livre ne couvre pas ces questions de base
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.