Contactar todos os endereços na rede, janelas

é possível, na linha cmd do windows, verificar todos os endereços de rede (com ping ou semelhantes) para ver quais são tomados/ têm dispositivos activos:

Ie. algo que faz algo como o seguinte:

for i = 0 to 255
    ping 192.168.1.i //Print this
end
Isto é código psuedo, obviamente. Estou me perguntando se é possível fazer algo assim no cmd do windows. Seria ótimo se não precisasse de um arquivo em lote, mas eu entendo se isso é impossível.

PS. Por favor, mencione também se há um programa para fazer isto, mas seria bom fazê-lo no cmd.

Author: Fantastic Mr Fox, 2012-12-05

10 answers

Abra a linha de comandos e escreva do seguinte modo:

FOR /L %i IN (1,1,254) DO ping -n 1 192.168.10.%i | FIND /i "Reply">>c:\ipaddresses.txt
Mude 192.168.10 para corresponder à sua própria rede.

Ao usar -n 1, está a pedir que apenas um pacote seja enviado para cada computador em vez dos 4 pacotes habituais.

O comando acima irá localizar todos os endereços IP na rede 192.168. 10. 0 e criar um documento de texto na unidade C:\ chamada ipaddresses.txt. Este documento de texto deve conter apenas endereços IP que responderam ao ping pedido.

Embora vá demorar um pouco mais para completar, Você também pode resolver os endereços IP para os nomes das máquinas, simplesmente adicionando-a ao comando ping.

FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.10.%i | FIND /i "Reply">>c:\ipaddresses.txt
Isto é daqui. Espero que isto ajude.
 93
Author: RGG, 2012-12-05 02:49:50
Eu sei que é uma resposta tardia, mas uma boa maneira de fazer isto é localizar o endereço de transmissão que populaça o seu cache arp local.

Isto pode então ser mostrado executando arp-a que irá listar todos os endereços na sua tabela arp local.

ping 192.168.1.255
arp -a

Espero que esta seja uma boa opção que as pessoas possam usar.

 26
Author: egmackenzie, 2014-05-27 15:42:45

A melhor utilidade em termos de velocidade é Nmap .

Escreva @ cmd prompt:

Nmap-sn-og ip.txt 192. 168. 1. 1-255

Isto irá apenas localizar todos os endereços ip no intervalo indicado e armazená-lo num ficheiro de texto simples

É preciso apenas ... 2 secs a analisar 255 máquinas que usam Nmap.
 15
Author: spetzz, 2013-09-30 14:18:20

Este post faz a mesma pergunta, mas para o linux - você pode achar útil. enviar um ping para cada IP numa sub-rede

O Nmap é provavelmente a melhor ferramenta para usar, pois pode ajudar a identificar o SO do host, bem como a ser mais rápido. Está disponível para a plataforma windows na nmap.org local

 5
Author: Paul Allen, 2017-07-10 22:52:54

Desde que a caixa do windows esteja na mesma sub-rede:

For / l %A in (1,1,254) do start ping 192.168.0.%a

Isto terminará em menos de 15 segundos e

Arp-a

Devolverei qualquer hospedeiro vivo.

A maneira nativa mais rápida que conheço nas janelas.
 2
Author: Vigbjorn, 2017-04-21 15:21:22

Tudo o que você está querendo fazer é ver se os computadores estão conectados à rede e para reunir seus endereços IP. Você pode utilizar o scanner angryIP: http://angryip.org/ para ver quais os endereços IP que estão a ser usados numa sub-rede ou grupos de sub-redes em particular.

Eu achei esta ferramenta muito útil ao tentar ver o que IPs estão sendo usados que não estão localizados dentro do meu DHCP.

 2
Author: Benjamin Trent, 2017-12-13 16:01:02

Algumas coisas parecem ter mudado nos programas em lote no Windows 8, e a solução acima pelo DGG agora faz com que a linha de comandos caia.

A seguinte solução funcionou para mim:

@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
Author: Paul Lammertsma, 2013-09-11 19:05:08

Uma expansão e uma adição útil à solução "arp-a" do egmackenzie para o Windows -

Exemplo do Windows à procura do meu iPhone na rede Wi-Fi

(pre: iPhone Wi-Fi desactivado)

Ver abaixo por exemplo:

enter image description here

Aqui está uma boa escrita sobre o uso de 'arp-d' aqui se interessado -

 1
Author: J-Dizzle, 2017-03-09 18:22:28
@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
Author: Emiel Duivenvoorden, 2013-11-08 16:33:42
for /l %%a in (254, -1, 1) do ( 
    for /l %%b in (1, 1, 254) do (
        for %%c in (20, 168) do (
            for %%e in (172, 192) do (
                ping /n 1 %%e.%%c.%%b.%%a>>ping.txt
            )
        )
    )
)
pause>nul
 -2
Author: user4316828, 2014-12-02 17:32:23