Utilisez nbtstat pour renvoyer la liste des noms d’hôte dans la plage IP?

1

Sous Windows 7, j'utilise la commande for /l %i in (1,1,254) do nbtstat -a xxx.xxx.xxx.%ipour renvoyer des noms d'hôte basés sur une plage d'adresses IP donnée. Mais la sortie est si longue et peu conviviale. Comment puis-je l'améliorer pour renvoyer une liste qui ressemble davantage à une feuille de calcul, telle que:

IP address Host name MAC address xxx.xxx.xxx.1 host-name-01 xx-xx-xx-xx-xx-x1 xxx.xxx.xxx.2 host-name-02 xx-xx-xx-xx-xx-x2 xxx.xxx.xxx.3 host-name-03 xx-xx-xx-xx-xx-x3 ?

J'ai vu des commandes qui ont quelque chose comme | list xxxà la fin, mais je ne suis pas très familier avec cette syntaxe particulière.

adhoclobster
la source

Réponses:

0

Vous devrez peut-être remplacer "UNIQUE" par son équivalent local dans la sortie.

@echo off
set PREFIX=127.0.0
setlocal enabledelayedexpansion

for /l %%i in (1,1,254) do ( 
nbtstat -a %PREFIX%.%%i > %TEMP%\info.txt 
for /F "tokens=4" %%a in ('findstr "MAC" %TEMP%\info.txt') do set MAC=%%a
for /F "tokens=1" %%a in ('findstr /R /C:"<00>  UNIQUE " %TEMP%\info.txt' ) do set HOSTNAME=%%a
echo %PREFIX%.%%i;%MAC%;%HOSTNAME%
)
À presser
la source