Nmap доступен для Windows:
# nmap -sP 10.0.10.1-100
У меня есть несколько машин в диапазоне IP-адресов, которые я хочу пинговать одновременно, чтобы быстро и грязно определить, какие из них включены. Какое (бесплатное) программное обеспечение я могу использовать для этого?
Я использую Windows Vista .
Nmap доступен для Windows:
# nmap -sP 10.0.10.1-100
Самый быстрый способ - использовать Angry IP Scanner.
Я использую это так же, как вы хотите!
Я использовал эту команду
for %%i in 200 to 254 do ping 10.1.1.%%i
в командном файле по аналогичной причине
попробуйте фпинг
Вместо того, чтобы вручную пропинговать все IP-адреса в вашей локальной сети, вы можете сделать следующее:
Откройте командную строку и введите:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
-n 1
означает, что на каждый компьютер будет отправлен только 1 пакет ping.
Изменить 192.168.0
в соответствии с вашим собственным идентификатором сети.
Это пропингует все IP-адреса в сегменте сети 192.168.0.0 и создает текстовый файл с именем ipaddresses.txt
в C: \, где будут перечислены только IP-адреса, которые дали ответ.
Вы также можете добавить -a
команду ping, чтобы преобразовать все отвечающие IP-адреса в имена хостов, но это приведет к тому, что выполнение скрипта займет значительное время:
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
Вы можете просто написать скрипт Bash, который просматривает диапазон IP-адресов и проверяет их связь. Пример, который проверяет адреса в диапазоне от 10.1.1.1 до 10.1.1.255 (включительно):
for i in do ping 10.1.1.$i done
Сохраните приведенный ниже скрипт на сервере с расширением .bat
или .cmd
и вызовите файл из командной строки. Он должен предложить ввести диапазон IP-адресов.
Пожалуйста, введите только три октета IP-адреса.
@echo off SET count=0 SET /p subnet=Please enter IP address range (for example, 192.168.0) :start SET /a count=%count%+1 cls ECHO. & ECHO Trying %subnet%.%count% & ECHO. ping -n 1 -w 1000 %subnet%.%count% >nul IF %errorlevel%==0 echo %subnet%.%count% UP >> c:\pingnet.log IF %errorlevel%==1 echo %subnet%.%count% DOWN >> c:\pingnet.log IF %count%==254 goto :eof GOTO start
Как только команда будет выполнена, она создаст текстовое имя файла pingnet.log
в корне диска C. Этот файл должен дать вам список используемых и неактивных (бесплатных) IP-адресов.
Например:
10.2.214.1 UP 10.2.214.2 UP 10.2.214.3 UP 10.2.214.4 DOWN
Это довольно просто запустить, и это должно сэкономить вам массу времени.
Angry IP Scanner is great, but I prefer CLI tools. See if you can get this powershell script running in Vista. https://github.com/webstersprodigy/PowerSploit/blob/Portscan/Recon/Invoke-Portscan.ps1
I also suggest getting access to a Linux CLI by using a linux live cd/usb, dual boot, or a vm in VirtualBox. (Install VirtualBox, add a new vm, install Debian.) A linux CLI is invaluable.
From a linux CLI, run the following:
for ip in 172.10.1.; do ping -c 1 -w 1 $ip > /dev/null && echo $ip "$(nslookup $ip | grep 'name = ' | awk -F ' = ' '')"; done
Adjust for your network range (the '172.10.1' part,) and you're off. This will provide a list of all hosts on the network that respond to ICMP echo (ping) requests, and resolve them against your DNS server.
Note: This is not the most reliable way to test for live hosts as they may have ICMP blocked.
nmap -sP 192.168.1.0/24
Note: Nmap is more reliable as it is a port scanner and bases its results on the activity on more than just ICMP responses. It's heavily used by pentesters and is worth learning.