Afficher la table ARP

cs_recha Messages postés 2 Date d'inscription lundi 16 octobre 2006 Statut Membre Dernière intervention 17 avril 2007 - 16 avril 2007 à 12:18
cs_recha Messages postés 2 Date d'inscription lundi 16 octobre 2006 Statut Membre Dernière intervention 17 avril 2007 - 17 avril 2007 à 13:44
Bonjour à tous ^^


Je cherche depuis un moment à pouvoir afficher la table ARP en C sans y parvenir...

Je sais pas quels fonctions utilisé ni comment les utiliser ^^

Si je cherche à faire ça, c'est parce que j'ai un projet réseaux à
réaliser où l'on nous demande de connaitre tous les clients connectés
sur le meme réseau que mon client.

J'ai donc pensé à envoyer des requete ARP sur toutes les ip possibles et ensuite à afficher la table ARP.

Dites moi si je fais fausse route ^^


Merci pour votre aide ^^

3 réponses

cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
16 avril 2007 à 15:01
salut, bon c'est très simple déja tu as les docs msdn :

// Récupération d'une adresse mac: tiré de la msdn:
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/sendarp.asp

ensuite la mise en place:

#include <tchar.h>
#include

int __cdecl RecupMacAdress(char * ip,char *macadress)
{
    //variables
    IPAddr  ipAddr;
    ULONG   pulMac[2];
    ULONG   ulLen;

    //transformation pour traitement de l'adresse ip
    ipAddr = inet_addr (ip);
   
    //init
    memset (pulMac, 0xff, sizeof (pulMac));
    ulLen = 6;
   
    //on récupère l'adresse mac ici si possible (si après un routage type internet = impossible)
    if (SendARP (ipAddr, 0, pulMac, &ulLen)==NO_ERROR)
    {
      PBYTE pbHexMac = (PBYTE) pulMac;
      snprintf (macadress,25,"%02X:%02X:%02X:%02X:%02X:%02X\0",pbHexMac[0],pbHexMac[1],pbHexMac[2],pbHexMac[3],pbHexMac[4],pbHexMac[5],pbHexMac[6] /*szMac*/);
      return 1;
    }

    sprintf(macadress,TXT_LFR_MSG_ERROR);         
    return 0;
}
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
16 avril 2007 à 19:15
Pour optimiser ton code envoie donc la requete ARP avec un broadcast ca sera plus simple a gérer au niveau du code et au moins tu es sure que tous les clients d'un meme réseau te répondrant.

Shell
0
cs_recha Messages postés 2 Date d'inscription lundi 16 octobre 2006 Statut Membre Dernière intervention 17 avril 2007
17 avril 2007 à 13:44
un GRAND merci pour votre aide messieurs :)

j'entrevois enfin le bout du tunnel ^_^
0
Rejoignez-nous