Ping всех адресов в сети, windows
Возможно ли в Windows cmd-строке проверить все сетевые адреса (с помощью ping или аналогичных), чтобы увидеть, какие из них приняты/имеют активные устройства:
т. что-то вроде следующего:
for i = 0 to 255
ping 192.168.1.i //Print this
end
Очевидно, это код psuedo. Мне интересно, можно ли сделать что-то подобное в windows cmd. Было бы здорово, если бы вам не нужен командный файл, но я понимаю, если это невозможно.
PS. Также, пожалуйста, укажите, есть ли программа для этого, но было бы неплохо сделать это в cmd.
Ответы
Ответ 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