web-dev-qa-db-fra.com

Ping toutes les adresses dans le réseau, Windows

Est-il possible dans la ligne de commande Windows de vérifier toutes les adresses réseau (avec ping ou similaire) pour voir celles qui sont prises/ont des périphériques actifs:

c'est à dire. quelque chose qui fait quelque chose comme ce qui suit:

for i = 0 to 255
    ping 192.168.1.i //Print this
end

C'est évidemment du code pseudo. Je me demande s'il est possible de faire quelque chose comme ceci dans Windows cmd. Ce serait génial si vous n'aviez pas besoin d'un fichier de commandes, mais je comprends si cela est impossible. 

PS. Veuillez également mentionner s'il existe un programme pour le faire, mais il serait agréable de le faire dans cmd. 

45
Fantastic Mr Fox

Ouvrez l'invite de commande et tapez ce qui suit:

FOR /L %i IN (1,1,254) DO ping -n 1 192.168.10.%i | FIND /i "Reply">>c:\ipaddresses.txt

Changez 192.168.10 pour correspondre à votre propre réseau.

En utilisant -n 1, vous demandez qu'un seul paquet soit envoyé à chaque ordinateur au lieu des 4 paquets habituels.

La commande ci-dessus envoie une requête ping à toutes les adresses IP du réseau 192.168.10.0 et crée un document texte dans le lecteur C:\appelé ipaddresses.txt.

Bien que l'exécution prenne un peu plus de temps, vous pouvez également résoudre les adresses IP en noms d'hôte en ajoutant simplement -a à la commande ping.

FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.10.%i | FIND /i "Reply">>c:\ipaddresses.txt

C'est de Ici

J'espère que cela t'aides

98
RGG

Je sais que c'est une réponse tardive, mais une façon élégante de le faire est d'envoyer une requête ping à l'adresse de diffusion qui remplit votre cache arp local.

Cela peut ensuite être montré en exécutant arp -a qui listera toutes les adresses de votre table arp locale.

ping 192.168.1.255
arp -a

J'espère que c'est une bonne option que les gens peuvent utiliser.

27
egmackenzie

Le meilleur utilitaire en termes de vitesse est Nmap .

écrire @ Invite cmd: 

Nmap -sn -oG ip.txt 192.168.1.1-255

cela va juste faire un ping de toutes les adresses IP dans la plage donnée et les stocker dans un simple fichier texte

Il suffit de 2 secondes pour analyser 255 hôtes à l'aide de Nmap.

15
spetzz

Ce message pose la même question, mais pour linux - vous le trouverez peut-être utile. Envoyer un ping à chaque IP d'un sous-réseau

nmap est probablement le meilleur outil à utiliser, car il peut aider à identifier le système d'exploitation hôte tout en étant plus rapide. Il est disponible pour la plate-forme Windows sur le site nmap.org

5
Paul Allen

À condition que la fenêtre Windows se trouve dans le même sous-réseau:

for/L% a in (1,1,254) commence le ping 192.168.0.% a

Cela se terminera en moins de 15 secondes et 

arp -a 

retournera tout hôte vivant. 

La manière la plus rapide native que je connaisse dans Windows.

3
Vigbjorn

Tout ce que vous voulez faire est de voir si les ordinateurs sont connectés au réseau et de rassembler leurs adresses IP. Vous pouvez utiliser angryIP scanner: http://angryip.org/ pour voir quelles adresses IP sont utilisées sur un sous-réseau ou des groupes de sous-réseaux particuliers.

J'ai trouvé cet outil très utile pour essayer de voir quelles adresses IP utilisées ne se trouvent pas dans mon DHCP.

2
Benjamin Trent

Une extension et un complément utile à la solution "arp -a" pour Windows de egmackenzie -

Windows Exemple de recherche de mon iPhone sur le réseau WiFi

(pre: iPhone WiFi désactivé)

Voir ci-dessous par exemple:

 enter image description here

Voici un bel article sur l'utilisation de 'arp -d' ici si cela vous intéresse -

1
J-Dizzle

Certaines choses semblent avoir changé dans les scripts batch sous Windows 8, et la solution ci-dessus de DGG provoque maintenant le blocage de l'invite de commande.

La solution suivante a fonctionné pour moi:

@echo off
set /a n=0
:repeat
set /a n+=1
echo 192.168.1.%n%
ping -n 1 -w 500 192.168.1.%n% | FIND /i "Reply">>ipaddresses.txt
if %n% lss 254 goto repeat
type ipaddresses.txt
1
Paul Lammertsma
@ECHO OFF

IF "%SUBNET%"=="" SET SUBNET=10

:ARGUMENTS
ECHO SUBNET=%SUBNET%
ECHO ARGUMENT %1 
IF "%1"=="SUM" GOTO SUM
IF "%1"=="SLOW" GOTO SLOW
IF "%1"=="ARP" GOTO ARP
IF "%1"=="FAST" GOTO FAST

REM PRINT ARP TABLE BY DEFAULT
:DEFAULT
ARP -a
GOTO END

REM METHOD 1 ADDRESS AT A TIME
:SLOW
ECHO START SCAN
ECHO %0 > ipaddresses.txt
DATE /T >> ipaddresses.txt
TIME /T >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO ping -a -n 2 192.168.%SUBNET%.%%i | FIND /i "TTL="  >> ipaddresses.txt
GOTO END

REM METHOD 2 MULTITASKING ALL ADDRESS AT SAME TIME
:FAST
ECHO START FAST SCANNING 192.168.%SUBNET%.X
set /a n=0
:FASTLOOP
set /a n+=1
ECHO 192.168.%SUBNET%.%n%
START CMD.exe /c call ipaddress.bat 192.168.%SUBNET%.%n% 
IF %n% lss 254 GOTO FASTLOOP
GOTO END

:SUM
ECHO START SUM
ECHO %0 > ipaddresses.txt
DATE /T >> ipaddresses.txt
TIME /T >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO TYPE ip192.168.%SUBNET%.%%i.txt | FIND /i "TTL=" >> ipaddresses.txt
FOR /L %%i IN (1,1,254) DO DEL ip192.168.%SUBNET%.%%i.txt
type ipaddresses.txt
GOTO END

:ARP
ARP -a >> ipaddresses.txt
type ipaddresses.txt
GOTO END


:END
ECHO DONE WITH IP SCANNING
ECHO OPTION "%0 SLOW" FOR SCANNING 1 AT A TIME
ECHO OPTION "%0 SUM" FOR COMBINE ALL TO FILE
ECHO OPTION "%0 ARP" FOR ADD ARP - IP LIST
ECHO PARAMETER "SET SUBNET=X" FOR SUBNET
ECHO.
0