[Script]Récupération d’adrese MAC de station sur le réseau

Ce script Batch permet suivant vos paramètres de scanner votre réseau et d’en ressortir sous un format txt la liste de vos IP associés aux adresse MAC sous la forme : echo IP = %%m MAC = %%n

Dans votre dossier courant du script, des fichiers textes sont générés à chaque étape pour décomposer le traitement. Ils sont dans l’ordre suivant :

  • ping1.txt
  • ping2.txt
  • ping3.txt
  • ping4.txt
  • ping5.txt

Le dernier traitement se trouve dans ping5.txt Description : J’utilise des boucles qui traite l’ensemble des lignes du fichiers précédent à chaque étape , pensez à jeter un coup d’oeil pour l’adapter à votre réseau.

 set ip=192.168.1.1 set debut=1 set fin=50

Ex : 192.168.1 jusqu’à 192.168.1.50 Si votre avant dernier bloc comtpe une dizaine ( ICI 35 ), adaptez ce morceaux de script :

set ip=192.168.35.1 set debut=1 set fin=50

Passez cette boucle comme suit ( %ip:~0,9% devient %ip:~0,10% ):

[code]for /L %%i in (%debut%,1,%fin%) do (echo Recherche de la machine : %ip:~0,10%.%%i [/code]

En effet dans ma boucle je dois découper ma chaine sur un caractère de plus, vu que l’on passe de 192.168.1.1 à 192.168.50.1 par exemple. Si il vous manque des détails n’hésitez pas à m’en faire part.


Récupération de l’adresse ip et de l’adresse MAC

 @echo off
if exist ping.txt (del ping.txt)
if exist ping2.txt (del ping2.txt)
if exist ping3.txt (del ping3.txt)
if exist ping4.txt (del ping4.txt)
if exist ping5.txt (del ping5.txt)
set ip=192.168.1.51
REM 192.168.1.1
set debut=1
set fin=2
REM affiche dans un fichier txt les ip qui répodent au ping
for /L %%i in (%debut%,1,%fin%) do (echo Recherche de la machine : %ip:~0,9%.%%i  
ping -n 1 %ip:~0,9%.%%i | FIND /I "TTL" >> ping.txt )
for /f "tokens=1 delims=ÿ" %%j in (ping.txt) do echo %%j >> ping2.txt
for /f "tokens=3 delims= " %%k in (ping2.txt) do echo %%k >> ping3.txt
for /f %%l in (ping3.txt) do arp -a %%l >> ping4.txt
for /f "skip=3 tokens=1,2 delims= " %%m in (ping4.txt) do (echo IP = %%m MAC = %%n >> ping5.txt)
start ping5.txt
pause

Laisser un commentaire