Prog système : demande ARP

Bonjour,

Je cherche à obtenir l’adresse mac correspondant à une adresse ip mais je ne veux pas re-implanter tout le protocole ARP ni émettre de requêts inutiles si le système connaît déjà la réponse.

Comment en langage C sous Linux demander au système l’adresse mac d’un hôte dont on connaît l’adresse ip et l’interface réseau connectée ?

Merci d’avance pour votre réponse

Tu ping l’IP et tu regardes dans la table arp via arp.

Ou encore tu fais arping IP et tu as l’adresse MAC sur la ligne retour.

En fait tu m’as mal compris, je le fais en c pas en bash.

Comme les fonctions unix sont trop dures à utiliser je tente de récupérer le résultat de la commande
arp -an | grep 10.0.0.1 | cut -d " " -f4

Mais execlp aime pas les délimiteurs apparemment.

arping -c 1 192.168.1.251 | grep from | awk ‘{print $4}’

ou bien met des ’ au lieu de " (essaye avec un )

execlp veut pas des pipe |, j’ai des vagues de souvenir de comment il fallait faire les | imbriqués avec dup2 et c’est très lourd.
Je comprends pas qu’il y ait pas une fonction :
char* get_mac(char* ip) quelque part …

Crée une commande getmac
/usr/local/bin/getmac

#!/bin/sh arping -c 1 $1 2> /dev/null| grep from | cut -d ' ' -f 4
et tu fais juste getmac IP