[identity profile] stupid1amo.livejournal.com posting in [community profile] useful_faq

Привет!

Есть список адресов (400шт)
Надо пингануть их и узнать какие онлайн-какие нет.
Результат о мертвых сложить в файл.
Как это сделать стандартными средствами вин?
Спасибо.

Posted via LiveJournal app for iPhone.

Date: 2012-12-27 10:38 am (UTC)
From: [identity profile] vaduha.livejournal.com
через .cmd-скрипт: for /F, ping, IF, echo

Date: 2012-12-27 10:56 am (UTC)
From: [identity profile] b00ling.livejournal.com
ping 192.168.0.1 >1.txt
ping 192.168.0.2 >>1.txt
ping 192.168.0.3 >>1.txt

Date: 2012-12-27 11:09 am (UTC)
From: [identity profile] rm-chik.livejournal.com
как-то так должно работать:

=========cut check.cmd=============
@Echo off
for /F %%i in (c:\ip.txt) do call report.cmd %%i
=========cut check.cmd=============



=========cut report.cmd=============
@Echo off
ping -n 1 -w 1000 %1 >nul
if %errorlevel%==0 goto good
goto bad
:good
echo %1>>alive.txt
goto fin
:bad
echo %1>>dead.txt
:fin
=========cut report.cmd=============

Date: 2012-12-27 12:33 pm (UTC)
From: [identity profile] rm-chik.livejournal.com
Это все в одном пооке выполняется. Команды start - на запуск новой инстанции cmd - вмом листинге нет.

Впрочем, вечером проверю, но такие конструкции я уже использовал, и неоднократно, и без всяких проблем

Date: 2012-12-27 07:10 pm (UTC)
From: [identity profile] rm-chik.livejournal.com
Проверить по-прежнему не могу, но если у тебя call порождает новую инстанцию, замени его на start /wait, как-то так

Date: 2012-12-27 01:06 pm (UTC)
From: [identity profile] alex-djk1.livejournal.com
Если нужен красивый отчет, то руби + какой-нить пинг и скрипт вида:
require 'ping'
File.open( 'addr.txt' ).each_line do |addr|
r = Ping.pingecho( addr ) ? "Alive" : "Dead"
print "#{ addr };#{ r }\n";
end

Edited Date: 2012-12-27 01:06 pm (UTC)

Date: 2012-12-27 05:57 pm (UTC)
From: [identity profile] karpion.livejournal.com
Операционку указать - религия не позволяет?

Для FreeBSD я бы скачал список пакаджей (файл INDEX) и профильтровал бы его на предмет присутствия слова "ping" (grep -i ping INDEX). Ну и поизучал бы найденное.
Для Linux такой метод тоже должен сработать - программы для них в основной массе общие.

Есть также вариант записать вывод всех пингов в файл и прошерстить его на предмет ответов (тот же grep или скрипт на Perl, AWK или другом аналогичном языке программирования с поддержкой регэксов.
Недостаток: очень сложно организовать одновременное (параллельное) "простукивание" всех машин, придётся последовательно.

Date: 2012-12-27 07:08 pm (UTC)
From: [identity profile] rm-chik.livejournal.com
В посте вроде написано: "стандартными средствами вин"

Date: 2012-12-30 01:05 am (UTC)
From: [identity profile] karpion.livejournal.com
Я не знаю такой операционки - "вин". Это слово - родительный падеж множественного числа слова "вино".
Кроме того, название операционки пишется с заглавной буквы.

Если же Вы подразумевали Windows, то надо указывать версию.