С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8669 / 4380 / 552
Регистрация: 13.03.2013
Сообщений: 15,972
Записей в блоге: 16
1

Уведомление об изменении ip-адреса по DNS-имени

27.03.2024, 09:13. Показов 718. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Категорически всех приветствую.
Ранее уже создавал похожие темы, в частности:
Определение внешнего ip и отправка такового на почту
Уведомление об изменении внешнего ip-адреса
Только теперь задача несколько иная: есть несколько филиалов с динамическими адресами, с различными роутерами (которые не умеют выполнять функцию по сабжу, как тот же микротик). К каждому филиалу прибит динамический ДНС. Необходимо пинговать филиал по ДНС-имени и, в случае изменения внешнего ip-адреса, высылать уведомление на почту.
Вопрос: как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2024, 09:13
Ответы с готовыми решениями:

Уведомление об изменении внешнего ip-адреса
Приветствую, коллеги! Ранее создавал тему, собственно, это решение и практикую на объектах с...

Получение DNS имени компьютера из ip адреса
Как можно получить DNS имя компьютера, где открыли страничку, зная его Ip?

Добавление DNS имени на DNS сервер
Добрый день! у меня в наличии есть 2 домен контроллера с днс серверами соответственно. Я хочу...

Уведомление о изменении файла
Всем привет, тут проблемка: нужно скопировать файл если он изменился, т.е. синхронизировать...

Уведомление об изменении свойства зависимости
Здравствуйте, В ходе написания элемента управления возникла следующая проблема: Не могу вызвать...

13
1218 / 329 / 60
Регистрация: 08.06.2022
Сообщений: 1,582
27.03.2024, 09:31 2
Maks, насколько часто меняется IP-адрес?
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8669 / 4380 / 552
Регистрация: 13.03.2013
Сообщений: 15,972
Записей в блоге: 16
27.03.2024, 09:54  [ТС] 3
Цитата Сообщение от Sonny362 Посмотреть сообщение
насколько часто меняется IP-адрес?
Везде по-разному: где-то раз в сутки, где-то раз в 2-е суток, где-то раз в неделю/10 дней.
0
1218 / 329 / 60
Регистрация: 08.06.2022
Сообщений: 1,582
27.03.2024, 10:07 4
Maks, мнда... простым скриптиком не обойдёшься.
Я примерно понимаю, как такую программу на C++/C# настрогать. Наверное, можно под PS такое сделать. У меня есть скриптик под bash-ем, пингующий удалённые точки и жалующийся почтой на недоступность, но он не верифицирует IP.
0
3160 / 1086 / 490
Регистрация: 29.05.2016
Сообщений: 4,515
27.03.2024, 11:26 5
Лучший ответ Сообщение было отмечено Maks как решение

Решение

Maks, добрый! На PS я вижу так. Можно интегрировать в bat, но мне лень, честно скажу
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$dns_name='name.ru' # указать проверяемую DNS-запись
$dns_server='77.88.8.8' # указать IP-адрес DNS-сервера (в текущем примере реальный IP-адрес DNS-сервера Яндекса)
function check-IP ($name, $server)
{
    $to='admin@mail.ru' # Указать почтовый адрес получателя
    $from='checker@mail.ru' # Указать почтовый адрес отправителя
    $smtpserver='mail.ru' # Указать сервер для отправки почты
    $port='587' # Указать используемый порт сервера для отправки почты
    $login='checker' # Указать логин используемой учётной записи для отправки почты
    $password_text='password' # Указать пароль используемой учётной записи для отправки почты
    $password = ConvertTo-SecureString $password_text -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential ($login, $password)
    $IP_current=(Resolve-DnsName -Name $name -Server $server -DnsOnly -NoHostsFile -Type A).IPAddress
    $IP_modified=(Resolve-DnsName -Name $name -Server $server -DnsOnly -NoHostsFile -Type A).IPAddress
    while (1 -gt 0) {
        while ($IP_modified -eq $IP_current) {
            start-sleep -s 60
            ipconfig /flushdns > $null
            $IP_modified=(Resolve-DnsName -Name $name -Server $server -DnsOnly -NoHostsFile -Type A).IPAddress
        }
        $IP_current=$IP_modified
        Send-MailMessage -To $to -From $from -Subject "Изменение IP-адреса" -Body "IP-адрес изменился на $($IP_current)" -SmtpServer $smtpserver -Port $port -UseSsl -Encoding utf8 -Credential $credential
    }
 
}
 
check-IP $dns_name $dns_server
2
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8669 / 4380 / 552
Регистрация: 13.03.2013
Сообщений: 15,972
Записей в блоге: 16
27.03.2024, 12:38  [ТС] 6
Цитата Сообщение от Karen87 Посмотреть сообщение
На PS я вижу так.
Уведомление об изменении ip-адреса по DNS-имени
0
3160 / 1086 / 490
Регистрация: 29.05.2016
Сообщений: 4,515
27.03.2024, 12:46 7
Maks, проверяйте доступы, явки и пароли к почтовому серверу
1
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8669 / 4380 / 552
Регистрация: 13.03.2013
Сообщений: 15,972
Записей в блоге: 16
27.03.2024, 13:20  [ТС] 8
Цитата Сообщение от Karen87 Посмотреть сообщение
проверяйте доступы, явки и пароли к почтовому серверу
Разобрался, но теперь такая проблема:
Уведомление об изменении ip-адреса по DNS-имени
0
3160 / 1086 / 490
Регистрация: 29.05.2016
Сообщений: 4,515
27.03.2024, 13:33 9
Maks, скрипт где создавали и в какой кодировке?
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8669 / 4380 / 552
Регистрация: 13.03.2013
Сообщений: 15,972
Записей в блоге: 16
27.03.2024, 14:02  [ТС] 10
Цитата Сообщение от Karen87 Посмотреть сообщение
скрипт где создавали и в какой кодировке?
Notepad++ / UTF-8
0
3160 / 1086 / 490
Регистрация: 29.05.2016
Сообщений: 4,515
27.03.2024, 14:05 11
Цитата Сообщение от Maks Посмотреть сообщение
Notepad++ / UTF-8
Попробуйте 22 строчку поменять на:
PowerShell
1
Send-MailMessage -To $to -From $from -Subject "Изменение IP-адреса" -Body "IP-адрес изменился на $($IP_current)" -SmtpServer $smtpserver -Port $port -UseSsl -Credential $credential
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8669 / 4380 / 552
Регистрация: 13.03.2013
Сообщений: 15,972
Записей в блоге: 16
28.03.2024, 09:25  [ТС] 12
Цитата Сообщение от Karen87 Посмотреть сообщение
Попробуйте 22 строчку поменять на
Кодировку скрипта при этом какую делать? Простая смена строчки не помогает.
0
3160 / 1086 / 490
Регистрация: 29.05.2016
Сообщений: 4,515
28.03.2024, 09:34 13
Лучший ответ Сообщение было отмечено Maks как решение

Решение

Цитата Сообщение от Maks Посмотреть сообщение
Кодировку скрипта при этом какую делать? Простая смена строчки не помогает.
Попробуйте открыть PowerShell_ISE, скопировать в него первоначальную версию скрипта (5-й пост) и сохранить
1
344 / 264 / 63
Регистрация: 12.12.2012
Сообщений: 2,085
28.03.2024, 09:56 14
https://learn.microsoft.com/ru... #-encoding

utf8: кодирует в формате UTF-8.
1
28.03.2024, 09:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2024, 09:56
Помогаю со студенческими работами здесь

Уведомление об изменении файла в сети
Помогите из отобранной строки массива, выбрать символы после "=". И возможно ли избавление от...

Уведомление View об изменении only get свойства
Добрый день. Пишу приложение на WPF + MVVM , возникла такая вот ситуация : у меня есть сервис...

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

Reactive Extension: уведомление Слушателя (Observer) об изменении в файле
Добрый день. Нужна помощь с библиотекой Reactive. Суть проблемы в следующем. Есть текстовый файл....

Как получить уведомление о изменении свойств чужого контрола?
Итак имеется компонент TExtDBEditCollection, который подключается к датасету и берет информацию для...

Уведомление клиента о смене IP адреса сервера
IP Динамический передача клиенту от сервера суть такая Server IP: 192.168.1.25 (локальный)...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru