Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Сканирование IP адресов (http://forum.oszone.net/showthread.php?t=184398)

Mickle 01-09-2010 14:11 1486382

Сканирование IP адресов
 
Всем доброго дня!
может кто знает как через смd можно просканировать сетку задавая диапозон адресов сначала один диапозон потом другой и.т.д.
и вывести отчет по сканированию столько то адресов, чтобы проверить наличие рабочих машин в сети которые работают!
зарание благодарю!

NiOl 01-09-2010 14:45 1486406

В свое время у меня было 2 версии батника для такой задачи, но из-за некоторых новшевств начал разработу 3го (с самоопределением сетей и отчетами по изменениям в сетях), но из-за некоторых сложностей так и не закончил.
Кратко приведу некоторые сложности:

1. Начиная с XP2SP можно до посинения пинговать работающий компьютер - "100% потерь"
2. Операция эта не шибко быстрая, особенно при переборе отсутствующих адресов
3. Распараллеливание пинга дает приличное ускорение, но на загруженных всяким софтом компьютерах приводит к вываливанию с ошибкой половины команд пинга.

Если Вы осознаете всю сложность, то поймете, почему свежие наработки пока предоставить не могу (ибо скрипт живет своей жизнью), а вот Вам старенький. По-умолчанию проходит по 192.168.0.х, в качестве параметра можно задать другую подсеть, например 10.10.10:

Код:

@echo off
rem        13.08.2008

if `%1`==`_` (GoTo L%2) else (
if `%1`==`` (set Base=192.168.0) else set Base=%1)

set Logs=IP_List
Echo.>>IP_List.txt
Echo  IP-List of %Base%.0 at %Date%  %Time:~0,8%>>IP_List.txt
Echo ==================================================>>IP_List.txt

for /L %%z in (1,1,254) do (
 echo %Base%.%%z
 cmd /v:on /c %0 _ 1 %Base% %%z>>IP_List.err
 )
GoTo End

:L1
ping -a -w 50 -n 1 %3.%4>%Temp%\IP_List-%4.tmp
if ErrorLevel 1 (del %Temp%\IP_List-%4.tmp
 GoTo End)
set n=.
for /f "tokens=2 delims= " %%a in (%Temp%\IP_List-%4.tmp) do if !n!==. set n=%%a
set m=??-??-??-??-??-??
for /f "tokens=1,2 delims= " %%a in ('arp -a') do if `%%a`==`%3.%4` set m=%%b
echo %3.%4        %m%        %n% >>IP_List.txt
del %Temp%\IP_List-%4.tmp

:End
exit

зы: На выходе генерит пару файлов IP_List.*

amel27 01-09-2010 17:20 1486569

можно через Nmap:
Код:

nmap -n -sn 192.168.1.0/24
P.S. требуется установка WinPcap

Mickle 07-09-2010 07:32 1490066

Привет всем!
А как пользоваться nmmap???
скачал WinPcap установил а дальше? пробЫвал через cmd не запускается??? подскажите????

root221 13-07-2011 08:20 1712267

Mickle, самый просто способ, чтобы не расписывать другие способы.

просто установи эту консольную утилиту в папку C:\Windows\system32, потом можешь вводить в консоль.

Код:

nmap -n -sn 192.168.1.0/24
и будет тебе счастье =)


Время: 00:25.

Время: 00:25.
© OSzone.net 2001-