NTFAQFr DépartNewsDiscussion AreaLinksrechercheSpaceHelp

network59.htm

Q. Comment obtenir une liste des adresses MAC <-> IP d'un réseau?

R. Un moyen simple d'obtenir une liste des adresses MAC correspondant aux adresses IP sur un sous-réseau local est de pinger chaque hôte du sous-réseau et de vérifier le contenu du cache ARP. Cependant pinger chaque noeud individuellement prend du temps et les entrées ne restent dans le cache ARP que deux minutes. Une alternative consiste à pinger le masque de diffusion du sous-réseau ce qui pingera chaque hôte du sous-réseau local (vous ne pouvez pinger le réseau entier car vous communiquez directement avec les noeuds du même sous-réseau, toutes les autres requêtes sont envoyées à la passerelle par défaut et vous n'obtiendrez donc que l'entrée ARP de la passerelle).

Qu'est-ce que le masque de diffusion ? Le masque de diffusion est facile à calculer si le masque de sous-réseau est de la forme 255.255.255.0 ou 255.255.0.0 etc. (multiples de 8 bits). Par exemple, si l'adresse IP est 134.189.23.42 et le masque de sous-réseau 255.255.0.0, le masque de diffusion sera de 134.189.255.255 ou 255 est dans le masque de sous-réseau depuis lequel l'adresse IP est copié, le 0 remplacé par 255, au fond l'id de réseau est conservé. Si le masque de sous-réseau n'est pas au format 255.255, vous devez effectuer ceci et tout ce dont vous avez besoin est l'adresse IP et le masque de sous-réseau.

  1. Pour chaque bit positionné à 1 dans le masque de sous-réseau, copier le bit correspondant de l'adresse IP dans le masque de diffusion
  2. Pour chaque bit positionné à 0 dans le masque de sous-réseau, copier 1 dans le bit correspondant du masque de diffusion

par exemple, l'adresse IP 158.234.24.98 et le masque de sous-réseau 255.255.248.0

Network

Host

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0
1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1

Byte 1

Byte 2

Byte 3

Byte 4

La première ligne représente le masque de sous-réseau 255.255.248.0, la seconde l'adresse IP 158.234.24.98 et la troisième le masque de diffusion 158.234.31.255.

Pour obtenir l'adresse MAC correspondant à l'adresse IP vous devez donc exécuter ceci

ping <masque de diffusion>
arp -a

Voila, une liste d'adresses IP et leur adresse MAC (vous pouvez ajouter > nomfichier pour envoyer la sortie vers un fichier, ex. arp - >iptomac.lst). Vous pouvez répéter ceci dans tous les sous-réseaux de votre société

Malheureusement, en raison de limitations de l'implémentation NT de PING, ce qui est au dessus ne fonctionne pas correctement, alors il faut mettre ceci dans un fichier .bat

REM arpping.bat
ping -n 1 -l 1 %1.%2
arp -a %1.%2

Appeler ensuite le fichier comme suit :

C:\> for /l %i in (1,1,254) do arpping 160.82.220 %i

Ces commandes génèreront une liste de toutes les adresses MAC correspondant aux adresses IP for 160.82.220.1 jusqu'à 160.82.220.254. Vous pouvez à nouveau mettre ceci dans un fichier et rediriger le résultat dans un autre, ex. :

REM test.bat
for /l %%i in (1,1,254) do arpping.bat 160.82.220 %%i

Remarquez que vous devez utiliser 2  %. Vous devez lancer le fichier de commande comme ceci

C:\> test.bat > file.txt

Rechercher ensuite la chaine dynamique dans le fichier file.txt

C:\> findstr dynamique file.txt
160.82.220.1 00-00-0c-60-8b-41 dynamique
160.82.220.9 00-60-97-4b-bf-4c dynamique
160.82.220.13 00-10-4b-49-94-e1 dynamique
160.82.220.17 00-80-5f-d8-a4-8b dynamique
160.82.220.22 00-a0-d1-02-a4-cf dynamique
160.82.220.25 00-60-08-75-0d-7a dynamique
160.82.220.26 00-10-4b-44-e4-73 dynamique
160.82.220.33 00-10-4b-44-d6-33 dynamique
160.82.220.34 00-10-4b-4e-67-6a dynamique
160.82.220.35 00-60-97-4b-c4-53 dynamique
160.82.220.39 00-10-4b-44-eb-ae dynamique
160.82.220.41 00-10-4b-49-7b-f7 dynamique
160.82.220.42 00-00-f8-21-7a-7f dynamique
160.82.220.43 08-00-20-88-82-57 dynamique
160.82.220.221 00-80-5f-88-d0-55 dynamique


Un commentaire , une précision ? Ecrivez nous.