Подтвердить что ты не робот

Ping всех адресов в сети, windows

Возможно ли в Windows cmd-строке проверить все сетевые адреса (с помощью ping или аналогичных), чтобы увидеть, какие из них приняты/имеют активные устройства:

т. что-то вроде следующего:

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

Очевидно, это код psuedo. Мне интересно, можно ли сделать что-то подобное в windows cmd. Было бы здорово, если бы вам не нужен командный файл, но я понимаю, если это невозможно.

PS. Также, пожалуйста, укажите, есть ли программа для этого, но было бы неплохо сделать это в cmd.

4b9b3361

Ответ 1

Откройте командную строку и введите следующее:

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

Измените 192.168.10, чтобы соответствовать вашей собственной сети.

Используя -n 1, вы запрашиваете только 1 пакет для отправки на каждый компьютер вместо обычных 4 пакетов.

Вышеприведенная команда проверит все IP-адреса в сети 192.168.10.0 и создаст текстовый документ на диске C:\ipaddresses.txt. Этот текстовый документ должен содержать только IP-адреса, которые отвечали на запрос ping.

Хотя для завершения потребуется немного больше времени, вы также можете разрешить IP-адреса для имен HOST, просто добавив -a к команде ping.

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

Это от Здесь

Надеюсь, что это поможет

Ответ 2

Я знаю, что это поздний ответ, но аккуратный способ сделать это - выполнить ping широковещательный адрес, который заполняет ваш локальный кеш arp.

Затем это можно показать, запустив arp -a, который отобразит все адреса в вашей локальной таблице arp.

ping 192.168.1.255
arp -a

Надеюсь, это хороший опрятный вариант, который люди могут использовать.

Ответ 3

Лучшая утилита с точки зрения скорости Nmap.

написать приглашение @cmd:

Nmap -sn -oG ip.txt 192.168.1.1-255

это будет просто ping всех IP-адресов в указанном диапазоне и сохранить его в простом текстовом файле

Для сканирования 255 хостов с помощью Nmap требуется всего 2 сек.

Ответ 4

Это сообщение задает тот же вопрос, но для Linux - вы можете найти его полезным. Отправьте пинг на каждый IP-адрес в подсети

nmap, вероятно, лучший инструмент для использования, поскольку он может помочь определить хост-систему, а также быть быстрее. Он доступен для платформы Windows на сайте nmap.org.

Ответ 5

Все, что вам нужно сделать, это проверить, подключены ли компьютеры к сети и собираются их IP-адреса. Вы можете использовать сканер angryIP: http://angryip.org/, чтобы узнать, какие IP-адреса используются в конкретной подсети или группах подсетей.

Я нашел этот инструмент очень полезным при попытке увидеть, какие IP-адреса используются, которые не находятся внутри моего DHCP.

Ответ 6

Некоторые вещи, похоже, изменились в пакетных сценариях в Windows 8, и решение, указанное выше DGG, теперь вызывает сбой командной строки.

Для меня работало следующее решение:

@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

Ответ 7

Если окно окна находится в одной подсети:

для/L% a в (1,1,254) начать ping 192.168.0.% a

Это закончится менее чем за 15 секунд и

arp -a

вернет любой живой хост.

Самый быстрый способ, который я знаю в окнах.

Ответ 8

@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.

Ответ 9

Расширение и полезное дополнение к решению egpackenzie "arp -a" для Windows -

Пример поиска Windows для моего iPhone в сети Wi-Fi

(pre: iPhone отключен WiFi)

См. ниже, например:

enter image description here

Вот хорошая запись об использовании "arp -d" здесь, если вы заинтересованы -

Ответ 10

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