Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
1

Проверка доступности ip-адреса с отчетом по эл.почте

07.11.2019, 12:04. Показов 14903. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую Вас, уважаемые коллеги и участники форума.
В общем, в этой теме решения найти так и не удалось, поэтому пишу здесь.
Необходимо сделать батник, который будет "мониторить" доступность ip-адреса и, в случае недоступности, высылать уведомление на электронную почту.
Интервал проверки, допустим, можно задать в планировщике.
Но вот с самим батником у меня пока трудности, ибо мне неведомо, в какую степь копать.
В общем, жду Вашей помощи.
0
07.11.2019, 12:04
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.11.2019, 12:04
Ответы с готовыми решениями:

Мониторинг доступности ip-адреса с отправкой отчета по эл.почте
Приветствую Вас, уважаемые коллеги и участники форума. Имеется контора, которую я обслуживаю по удаленке. У конторы два филиала в...

Проверка доступности адреса?
Добрый день, Подскажите простой вариант проверки адреса URL, доступен - перейти на него, нет - перейти на другой. Приходит в голову...

Проверка доступности IP-адреса, с возвратом
Здравствуйте, прошу вашей помощи, никак не могу реализовать на странице Form проверку доступности определенного IP адреса и по возврату да...

30
6624 / 2794 / 1078
Регистрация: 06.06.2017
Сообщений: 9,495
07.11.2019, 12:18 2
Цитата Сообщение от Maks Посмотреть сообщение
если Вам нечего сказать по-существую заданного вопроса
То, что вы не видите очевидного, не говорит о том, что мне сказать нечего. Я вам привёл тему с моим кодом (который вы проигнорировали), где реализована отправка ip на почту. Ваша задача исправить его под свои нужды.
0
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
07.11.2019, 12:35  [ТС] 3
FlasherX, приведенный Вами код выполняет только часть поставленной задачи в данной теме, а именно, только отправку на электронную почту.
Вопрос остается открытым, т.к. в Вашем предыдущем коде не предусмотрено ключевое условие (см. первый пост).
0
Эксперт по компьютерным сетям
 Аватар для romsan
5318 / 2187 / 467
Регистрация: 17.10.2015
Сообщений: 9,316
08.11.2019, 19:47 4
Нет решения пока? Меня этот вопрос очень заинтересовал... ну люблю я всякие хотелки автоматизировать.
В далеком 2010 я точно настраивал отправку мыла с помошью blat. Однако пару дней я с ним щас промучался - нив какую не хочет отправлять. Нарыл другую утилиту - mailsender. Ее настроил и письмо из cmd улетает.
А вот bat-ник с условием внутри никак не состряпаю... ну не прогмер я...
Сегодня случайно наткнулся вот на такой скрипт (честно говорю - копипас 100%)
Кликните здесь для просмотра всего текста

Код
@Echo Off
:: Anonymous, 2011
Cls
Title Ping2Host

:: Logging
Set Logging=true
:: Timeout on seconds
Set Timeout=2

Echo.
Set /P Host= Enter IP or hostname: ^> 
Cls&Set Total=0&Set Succes=0&Set Fail=0&Set Status=Not checked yet&Set StartTime=[%date% - %time:~-0,8%]
Set /A Sleep=(Timeout-1)*1000
If %Logging%==true (Set LogFile="%~n0.log") Else (Set LogFile=nul)
Echo.>>%LogFile%&Echo Started at %StartTime%>>%LogFile%
:ShowStats
Call :Stats
.\nc.exe wait %Sleep%
Ping -n 1 -w 1000 -l 1024 %Host%>nul
If %ErrorLevel% GTR 0 (
Set /A Fail+=1
If Not "%Status%"=="Offline" (Echo %date% - %time:~-0,8% ^>^> %Host% is offline>>%LogFile%)
Set Status=Offline
Title Offline [%Host%] - Ping2Host
) Else (
Set /A Succes+=1
If Not "%Status%"=="Online" (Echo %date% - %time:~-0,8% ^>^> %Host% is active>>%LogFile%)
Set Status=Online
Title Online [%Host%] - Ping2Host
)
GoTo ShowStats

:Stats
Cls
Echo.
Echo Started at: %StartTime%
Echo.
Echo Target: %Host%
Echo Online: %Succes% times, Offline: %Fail% times
Echo Current status: [%date% - %time:~-0,8%] - %Status%
Echo.
If "%Status%"=="Offline" goto :mail
Exit /B

:mail
blat.exe -install smtp.mail.ru вашеМыло@mail.ru 0 25 вашеМыло@mail.ru парольМыла
blat.exe -to вашеМыло@mail.ru -subject "Тема" -body "телоПисьма" -attach "%LogFile%"
Exit

Я думаю можно его взять за основу, а, если blat не будет отправлять, то вместо него прикрутить mailsender.
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
08.11.2019, 20:26  [ТС] 5
romsan, на стороннем форуме нашел такой код:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
rem Set
set ip=10.0.3.234
set blat=d:\cleaner\Scripts\blat\blat.exe
set smtp=smtp.yourserver.com
set from=your@email.com
set to=who_need_message@email.com
set tema=Error backup to Sklad IP "%ip%"
set body=The computer on the sklad "%ip%" is shutdown
rem Run Check
ping -n 1 %ip% | find /i "TTL=">nul
if %errorlevel%==0 (
echo IP is good
) else (
"%blat%" - -server %smtp% -f %from% -to %to% -subject "%tema%" -body "%body%"
)
Blat не поддерживает шифрование SSL, но у меня почта на частном домене, буду пробовать пока этот вариант.
0
6624 / 2794 / 1078
Регистрация: 06.06.2017
Сообщений: 9,495
09.11.2019, 15:57 6
Лучший ответ Сообщение было отмечено Maks как решение

Решение

Та же петрушка с mailsend из моего кода:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
set "mailsender=C:\Portable\mailsend\mailsend1.20b.exe"
set ip=10.0.3.234
 
ping -n 1 %ip%|find /i "TTL=">nul||^
"%mailsender%" ^
-smtp smtp.gmail.com ^
-port 465 ^
-name "%USERNAME%" ^
-user from ^
-f from@gmail.com ^
-pass PASSWORD ^
-t to@gmail.com ^
-sub "Error backup to Sklad IP %ip%" ^
-M "The computer on the sklad %ip%" ^
-auth-plain +bc +cc -q -ssl
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
09.11.2019, 19:42  [ТС] 7
FlasherX, при запуске выдает это:
Проверка доступности ip-адреса с отчетом по эл.почте

smtp-сервер указан верно.
0
6624 / 2794 / 1078
Регистрация: 06.06.2017
Сообщений: 9,495
09.11.2019, 20:21 8
В конец 5-ой строки втиснуть открывающую скобку ||(^ и в конец 16-й — закрывающую.
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
09.11.2019, 22:09  [ТС] 9
FlasherX, благодарю, теперь работает.
0
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
16.11.2019, 07:17  [ТС] 10
В общем, батник работает, все нормально, но выявилась такая брешь (в принципе, предсказуемая): когда в филиале, где установлен батник, пропадает инетнет, батник не может достучаться то требуемого ip (это логично), когда интернет появляется вновь, батник отсылает письмо на электронку, что небыл доступен ip-адрес второго филиала, при этом во втором филиале с инетом все было нормально.
Возможно ли как-то в пределах bat это устранить?
0
6624 / 2794 / 1078
Регистрация: 06.06.2017
Сообщений: 9,495
16.11.2019, 09:27 11
Maks, я так понимаю, это связано с пятисекундным таймаутом на соединение. Можно ограничитьcя одной или двумя секундами, дописав в конец 16-й строки: -ssl -ct 1).
Также преобразуем 5 строку:
Windows Batch file
1
1>2 ping -n 1 ya.ru&&1>2 ping -n 1 %ip%||(^
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
16.11.2019, 12:32  [ТС] 12
FlasherX, благодарю, это как раз то, что нужно.

Добавлено через 2 часа 7 минут
FlasherX, после внесения изменений в батник, рядом создается файл "2" (без расширения).

Кликните здесь для просмотра всего текста
ЋЎ¬Ґ­ Ї ЄҐв ¬Ё б 31.165.53.48 Ї® б 32 Ў ©в ¬Ё ¤ ­­ле:
ЋвўҐв ®в 31.165.53.48: зЁб«® Ў ©в=32 ўаҐ¬п=71¬б TTL=55

‘в вЁбвЁЄ  Ping ¤«п 31.165.53.48:
Џ ЄҐв®ў: ®вЇа ў«Ґ­® = 1, Ї®«г祭® = 1, Ї®вҐап­® = 0
(0% Ї®вҐам)
ЏаЁЎ«Ё§ЁвҐ«м­®Ґ ўаҐ¬п ЇаЁҐ¬ -ЇҐаҐ¤ зЁ ў ¬б:
ЊЁ­Ё¬ «м­®Ґ = 71¬бҐЄ, Њ ЄбЁ¬ «м­®Ґ = 71 ¬бҐЄ, ‘।­ҐҐ = 71 ¬бҐЄ
0
6624 / 2794 / 1078
Регистрация: 06.06.2017
Сообщений: 9,495
16.11.2019, 15:20 13
Maks, тогда поправочка:
Windows Batch file
1
>nul (2>&1 ping -n 1 ya.ru&&2>&1 ping -n 1 %ip%)||(
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
16.11.2019, 15:22  [ТС] 14
FlasherX, прошу прощения, а галочку вверх ^ в конце строки нужно ставить?
0
6624 / 2794 / 1078
Регистрация: 06.06.2017
Сообщений: 9,495
16.11.2019, 15:25 15
Maks, после открывающей скобки карет необязателен.
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
16.11.2019, 16:18  [ТС] 16
FlasherX, к сожалению, не работает.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
set "mailsender=C:\Portable\mailsend\mailsend1.20b.exe"
set ip=10.0.3.234
 
>nul (2>&1 ping -n 1 ya.ru&&2>&1 ping -n 1 %ip%)||(
"%mailsender%" ^
-smtp smtp.gmail.com ^
-port 465 ^
-name "%USERNAME%" ^
-user from ^
-f from@gmail.com ^
-pass PASSWORD ^
-t to@gmail.com ^
-sub "Error backup to Sklad IP %ip%" ^
-M "The computer on the sklad %ip%" ^
-auth-plain +bc +cc -q -ssl -ct 1)
0
6624 / 2794 / 1078
Регистрация: 06.06.2017
Сообщений: 9,495
16.11.2019, 17:41 17
Maks, точно, там же || как else действует. Тогда в две строчки:
Windows Batch file
1
2
>nul ping -n 1 ya.ru
if %errorlevel%==0 >nul ping -n 1 %ip%||(
1
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
16.11.2019, 19:32  [ТС] 18
Цитата Сообщение от FlasherX Посмотреть сообщение
Тогда в две строчки
Все равно не работает...
0
6624 / 2794 / 1078
Регистрация: 06.06.2017
Сообщений: 9,495
16.11.2019, 19:48 19
Maks, "не работает" — это не багрепорт. Конкретика нужна всегда.
0
Супер-модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
 Аватар для Maks
8755 / 4517 / 561
Регистрация: 13.03.2013
Сообщений: 16,435
Записей в блоге: 16
16.11.2019, 20:23  [ТС] 20
Цитата Сообщение от FlasherX Посмотреть сообщение
Конкретика нужна всегда.
Делаю недоступным ip-адрес, который собираюсь проверять, через брандмауэр.
Для достоверности проверяю его обычным пингом из командной строки.
Далее, запускаю код:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
set "mailsender=C:\Portable\mailsend\mailsend1.20b.exe"
set ip=10.0.3.234
 
>nul ping -n 1 ya.ru
if %errorlevel%==0 >nul ping -n 1 %ip%||(
"%mailsender%" ^
-smtp smtp.gmail.com ^
-port 465 ^
-name "%USERNAME%" ^
-user from ^
-f from@gmail.com ^
-pass PASSWORD ^
-t to@gmail.com ^
-sub "Error backup to Sklad IP %ip%" ^
-M "The computer on the sklad %ip%" ^
-auth-plain +bc +cc -q -ssl -ct 1)
pause
Открывается окно командной строки, с мигающим в верхнем левом углу курсором, через 3-5 секунд в этом же окне пишет: "Для продолжения нажмите любую клавишу...".
Никакого письма на адрес не приходит.
При этом код:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
set "mailsender=C:\Portable\mailsend\mailsend1.20b.exe"
set ip=10.0.3.234
 
ping -n 1 %ip%|find /i "TTL=">nul||(^
"%mailsender%" ^
-smtp smtp.gmail.com ^
-port 465 ^
-name "%USERNAME%" ^
-user from ^
-f from@gmail.com ^
-pass PASSWORD ^
-t to@gmail.com ^
-sub "Error backup to Sklad IP %ip%" ^
-M "The computer on the sklad %ip%" ^
-auth-plain +bc +cc -q -ssl)
прекрасно отрабатывает на том же ПК при таких же условиях (блокировка ip в брандмауэре).
0
16.11.2019, 20:23
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2019, 20:23
Помогаю со студенческими работами здесь

Проверка доступности адреса памяти
Как проверить можно ли прочитать по указанному адресу , что либо ?

Проверка доступности IP-адреса через выполнение vbs-скрипта
Друзья, владение программированием минимальны, а задача есть следующая - требуется запуском vbs-скрипта с определенной периодичностью из...

Проверка internet connection. Проверка доступности сети
Добрый день. Для проверки Internet Connection советуют делать что-то вроде: private boolean haveNetworkConnection() { ...

Ошибка при проверке доступности текстового адреса (NetworkInformation.Ping)
Написал функцию проверки доступности сервера. Если server_address числовой - работает, если текстовый то нет. В чем ошибка? ...

Проверка доступности порта
Добрый день,подскажите,как дописать батник.Батник проверяет доступность порта,если порт не доступен,он или перегружает порт или выключает и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
Laravel или Symfony: что лучше для старта?
Wired 18.02.2025
В веб-разработке выбор правильного фреймворка может стать определяющим фактором успеха проекта. Особенно это актуально для PHP - одного из самых распространенных языков программирования, где Laravel. . .
Что нового в Laravel 12
Wired 18.02.2025
С момента своего появления в 2011 году Laravel постоянно развивается, внедряя инновационные решения и совершенствуя существующие возможности. В начале 2025 года ожидается выход Laravel 12 - новой. . .
Роутер в Laravel: как работать с маршрутами
Wired 18.02.2025
Маршрутизация - один из основополагающих элементов любого веб-приложения на Laravel, определяющий как приложение отвечает на HTTP-запросы к различным URL-адресам. По сути, роутинг - это механизм. . .
Интеграция шаблона Bootstrap в Laravel PHP
Wired 18.02.2025
Разработка веб-приложений в современном мире требует не только надежного бэкенда, но и привлекательного, отзывчивого интерфейса. Laravel, как один из самых популярных PHP-фреймворков, отлично. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru