Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Получение внешнего IP и отправка его на Email

Автор: rets2
Дата сообщения: 15.10.2009 18:14
Здравствуйте господа.
Вот столкнулся с такой проблемой, определение внешнего IP на удаленом компьютере с динамическим IP и отправкой IP на Email. Можна ли ето сделать с помощью батника или скрипта? Чтоби IP высылался с некоторым интервалом времени?
Спасибо за помощь.
Автор: JcVai
Дата сообщения: 15.10.2009 19:22
Легко. Смотри в сторону консольной команды ipconfig и консольного мейлера, например Blat
Потом пишется батник, в котором первая команда - вывод ответа ipconfig в файл, а вторая - отправка этого файла мылом. После файлик забивается в шедуллер... или, например, в скрипт, запускаемый после установки соединения с провайдером.
Автор: rets2
Дата сообщения: 15.10.2009 19:30
JcVai
Спасибо а , можно по подробней, если нетрудно.
Автор: JcVai
Дата сообщения: 15.10.2009 19:51
Что то типа этого при помощи postie

Код:
@echo off
rem === Начало файла sendip.cmd ===
ipconfig /all > c:\scripts\mycurrentip.txt
cd c:\scripts
c:
postie.exe -host:my.mail.server -to:me@my.mail -from:mypc@local.host -s:MyIP -file:mycurrentip.txt
del /q c:\scripts\mycurrentip.txt
exit
Автор: adjuster
Дата сообщения: 15.10.2009 20:54
Dyndns. Достаточно знать только имя, а IP можно будет узнать пинганув.
Автор: rets2
Дата сообщения: 15.10.2009 21:09
JcVai ? adjuster

Спасибо товарищи.


вот подправил батник JcVai

@echo off
rem === Начало файла sendip.cmd ===
ipconfig /all > c:\scripts\mycurrentip.txt
cd c:\scripts
c:
postie.exe -host:mail.ru -smtp_host:smtp.mail.ru -smtp_port:2525 -user:*** -pass:**** -to:***** -from:*** -s:MyIP -file:mycurrentip.txt
del /q c:\scripts\mycurrentip.txt

батник вроде работает но, файл не шлет

Подправте пожалуйста.
Автор: mcmare
Дата сообщения: 16.10.2009 06:26

Цитата:
батник вроде работает но, файл не шлет

тоже некогда столкнулся с такой проблемой, понял что blat не отправляет почему то на mail.ru Пришлось зарегистрироваться на gmail.com и все заработало.
Автор: rets2
Дата сообщения: 16.10.2009 07:35
Спасибо всем разобрался

Сделал батник на базе Blat.

@echo off
rem === SEND IP===
ipconfig /all > c:\Temp\ip.info_file
cd c:\Temp
c:
blat.exe ip.info_file -to ****@****.** -subject "ip"
del /q ip.info_file
exit

нюанс в том, что пришлось добавить параметр "From" в реестр руками.
Blat -istall - незахотел его прописать.
Автор: Dunkeshu
Дата сообщения: 30.10.2012 18:15
Hi!

Цитата:
Здравствуйте господа.
Вот столкнулся с такой проблемой, определение внешнего IP на удаленом компьютере с динамическим IP и отправкой IP на Email. Можна ли ето сделать с помощью батника или скрипта? Чтоби IP высылался с некоторым интервалом времени?
Спасибо за помощь.
Ну и как же это всё понимать? Это всё, больше подходит для решения вопроса по пересылке файлов на почту, а не определение внешнего динамического интернет IP - адреса, с последующей пересылкой его на соответствующий электронный адрес! Может кто-то конкретно ответит на данный сабж?
Автор: vlary
Дата сообщения: 30.10.2012 22:17
Dunkeshu Чем не нравится решение, которое предложил rets2?
А если имеется в виду определение внешнего айпи, когда комп находится за НАТом - тогда
подход несколько другой.
Можно, к примеру, выполнить команду
wget http://checkip.dyndns.org (установив предварительно программу wget для Виндовс),
и отправить на почту содержимое полученного файла index.html батником посоветованым rets2, с минимальными изменениями.
Оно будет примерно такое:

Код: <html><head><title>Current IP Check</title></head>
<body>Current IP Address: 79.139.24.25</body></html>
Автор: Dunkeshu
Дата сообщения: 31.10.2012 01:02
Hi!
vlary Благодарю за оперативный ответ.

Цитата:
Чем не нравится решение, которое предложил rets2?
Тем, что ipconfig выдаёт лишнюю избыточную информацию относительно локальных IP-адресов. За роутером ipconfig не видит внешние IP.

Цитата:
Можно, к примеру, выполнить команду
wget http://checkip.dyndns.org (установив предварительно программу wget для Виндовс),
и отправить на почту содержимое полученного файла index.html батником посоветованым rets2, с минимальными изменениями.
Оно будет примерно такое:

Код: <html><head><title>Current IP Check</title></head>
<body>Current IP Address: 79.139.24.25</body></html>

Кстати, если комп не за НАТ, а имеет белый динамический айпи, метод тоже сработает.
index.html после отправки удалить, иначе при следующей работе скрипта получим index.html.1,
index.html.2 и так далее.
Ну, а сами Вы, к примеру, пробовали предложенный метод?
Это, что получается: - "Автоматом получить и отправить IP, никак нельзя?" То есть, надо ручками всё исправлять?
А как всё сделать автоматом? Ну как в сабже или даже лучше! Или такое не выполнимо?

Автор: Dinxor
Дата сообщения: 31.10.2012 11:42
Dunkeshu

Цитата:
А как всё сделать автоматом? Ну как в сабже или даже лучше! Или такое не выполнимо?


А в чем проблемма? Написать батник запускающий wget а затем blat, повесить запуск этого батника на периодический запуск в планировщике. wget скачивает файл index.html, затем blat отправляет этот файл по почте.

Если у компьютера белый IP, лучше всего применить ipconfig | find "IP-" > ip_file.txt (так убирается лишняя информация)

Если компьютер за роутером и к роутеру есть доступ, можно добыть адрес из него с помощью скрипта по telnet. Подобную задачу я решал 5 лет назад, подключался к ADSL модему с помощью консольного telnet клиента tse.exe _http://home.onego.ru/~loft/_tse.exe и заливал полученный файл с IP на FTP сервер. Примерно так:

tse.exe < Router_IP.ini | find "P-t-P" > ip_file.txt
curl.exe -m 20 -u user:pass -T ip_file.txt ftp://ftpsite/

недостаток метода - в файле Router_IP.ini надо прописывать пароль к роутеру.

Вопрос в другом - зачем тебе IP адрес компьютера в почте? Я городил весь этот огород для возможности бесплатного обмена файлами внутри сетки с динамическими адресами, сейчас это уже неактуально. В интернете проще использовать _http://dyn.com/dns/
Автор: vlary
Дата сообщения: 31.10.2012 15:30
Dunkeshu
Цитата:
Ну, а сами Вы, к примеру,  пробовали предложенный метод?
Я никогда не советую то. что сам не проверил. Содержимое файла index.html, что я поместил, было получено именно с помощью wget http://checkip.dyndns.org

Цитата:
А как всё сделать автоматом? Ну как в сабже или даже лучше! Или такое не выполнимо?
Все выполнимо. При определенных умениях и навыках. Я бы, например, если бы это мне было нужно, скомпилил простенькую программу на C#

Код: using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Net.Mail;

namespace GetMyIP
{
class Program
{
static void Main(string[] args)
{
WebResponse webResponse = null;
StreamReader stream = null;
String result = null;
Uri targetUri = new Uri("http://checkip.dyndns.org");
WebRequest webRequest = (HttpWebRequest) HttpWebRequest.Create(targetUri);

String from = "me@mydomain.ru";
String to = "me@mydomain.ru";


webRequest.Proxy = null;
try {
webResponse = webRequest.GetResponse();
stream = new System.IO.StreamReader(webResponse.GetResponseStream());
result = stream.ReadToEnd();
//Console.WriteLine(result);
SmtpClient client = new SmtpClient("mail.mydomain.ru");
MailMessage message = new MailMessage(from, to, "Current IP Address", result);
message.IsBodyHtml = true;
client.Timeout = 100000;
client.Send(message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
// Console.Read();

}
}
}
Автор: Dunkeshu
Дата сообщения: 01.11.2012 02:36
Hi!
Dinxor
Цитата:
Вопрос в другом - зачем тебе IP адрес компьютера в почте? Я городил весь этот огород для возможности бесплатного обмена файлами внутри сетки с динамическими адресами, сейчас это уже неактуально. В интернете проще использовать _http://dyn.com/dns/
Это отдельная тема, Для того огорода, можно применить, например NeoRouter со всеми вытекающими .... и, знание IP, как бы не является чем-то особенным, так как всё практически автоматом, после соответствующей настройки!

vlary
Цитата:
Все выполнимо. При определенных умениях и навыках. Я бы, например, если бы это мне было нужно, скомпилил простенькую программу на C#

Код: using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using System.Net.Mail;

namespace GetMyIP
{
class Program
{
static void Main(string[] args)
{
WebResponse webResponse = null;
StreamReader stream = null;
String result = null;
Uri targetUri = new Uri("http://checkip.dyndns.org");
WebRequest webRequest = (HttpWebRequest) HttpWebRequest.Create(targetUri);

String from = "me@mydomain.ru";
String to = "me@mydomain.ru";


webRequest.Proxy = null;
try {
webResponse = webRequest.GetResponse();
stream = new System.IO.StreamReader(webResponse.GetResponseStream());
result = stream.ReadToEnd();
//Console.WriteLine(result);
SmtpClient client = new SmtpClient("mail.mydomain.ru");
MailMessage message = new MailMessage(from, to, "Current IP Address", result);
message.IsBodyHtml = true;
client.Timeout = 100000;
client.Send(message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
// Console.Read();

}
}
}



Возможное улучшение - запустить программу в цикле, каждые 10 минут делать запрос, проверять айпи, сравнивать с предыдущим, и только при его изменении отправлять почту.
Ну, а что делать не программисту, то есть человеку, который далёк от всех этих циклов и т.д. и т.п.? Видимо ответ на данный вопрос очевиден! Можно конечно применить, например DIP builder, который позволяет сделать всё автоматом, но для меня лично это SPY, так что один из выходов - спрашивать у Знающих людей! Кто в дверь стучится, тому дверь откроют .... Казнить нельзя, помиловать!
Автор: Dunkeshu
Дата сообщения: 07.11.2012 16:20

Цитата:
Все выполнимо. При определенных умениях и навыках. Я бы, например, если бы это мне было нужно, скомпилил простенькую программу на C#
Нащёл программу, которая уже скомпиллирована и в принципе удовлетворяет необходимым требованиям http://forum.ru-board.com/topic.cgi?forum=35&topic=17197&start=60
Правда, не совсем полностью её протестировал, по вопросам безопасности, так как сейчас занят поиском ответа на такой вопрос: - "Какую можно использовать программу, которая могла бы работать с эл. почтой, из ком. строки, для получения вложения с IP адресом, желательно с поддержкой SSL ?"

P.S. Естественно, если кто-то найдёт возможность ответить, то монстров электронной почты, а тем более их платные варианты, которые могут работать из ком. строки, а также коды для их компилляции, желательно не приводить!
Автор: vlary
Дата сообщения: 07.11.2012 17:30
Dunkeshu
Цитата:
для получения вложения с IP адресом, желательно с поддержкой SSL ?
Для получения или отправки? Если второе, то в этой теме есть пример почти готового простенького батничега на VbScript, который все это делает (отправку файла нужно будет раскомментировать), и который совершенно не надо компилировать.

Автор: Dunkeshu
Дата сообщения: 08.11.2012 02:17
Hi!
vlary
Цитата:
Для получения или отправки? Если второе, то в этой теме есть пример почти готового простенького батничега на VbScript, который все это делает (отправку файла нужно будет раскомментировать), и который совершенно не надо компилировать.
Для получения! Но и эта информация не лишняя. А вот компилировать некоторые умудряются: - "Всё, что шевелится!"
Автор: kotte
Дата сообщения: 09.11.2012 09:56
А может рассмотрите установку маленькой софтинки которая сама все это будет делать
При условии физического доступа к машинке.
www.no-ip.кom - я этим пользуюсь достаточно успешно!
Автор: Dunkeshu
Дата сообщения: 09.11.2012 17:39
Hi!
kotte
Цитата:
А может рассмотрите установку маленькой софтинки которая сама все это будет делать
При условии физического доступа к машинке.
www.no-ip.кom - я этим пользуюсь достаточно успешно!
Благодарю за желание помочь, но постоянный ресурс для контроля динамического IP не нужен, ну и клиент, с распространением рекламы, тем более не желателен, а платные варианты не хочется использовать. Зачем мне всё это надо?
Цитата:
Это отдельная тема, Для того огорода, можно применить, например NeoRouter со всеми вытекающими .... и, знание IP, как бы не является чем-то особенным, так как всё практически автоматом, после соответствующей настройки!
Но вполне возможно, что Ваш совет будет кому-то полезен в данной теме.


Автор: Clan_F6
Дата сообщения: 27.06.2016 12:49
Привет всем. Воскрешу старую тему. Чет не могу заставить blat отправлять с smtp.mail.ru смтп сервера юзаю TLS 465 порт, но отправка не идет использую сл. строки для отправки:
Установил сервер и порт
D:\1>blat.exe -install smtp.mail.ru sender@mail.ru 0 465 -u sender@mail.ru -pw pass

Blat v3.2.15 (build : Jun 26 2016 21:36:42)
64-bit Windows, Full, Unicode
SMTP server set to smtp.mail.ru on port 465 with user sender@mail.ru, retry 1 time(s)

Делаю отправку
D:\1>blat.exe -to receive@mail.ru -attach ip.txt

Получаю ругательство:
Blat v3.2.15 (build : Jun 26 2016 21:36:42)
64-bit Windows, Full, Unicode

Error: Wait a bit (possible timeout).
*** Error *** SMTP server error
Error: Not a socket.
Error: Not a socket.

sender и receive вымышленные имена почты, для примера на форуме. если blat.exe не умеет работать с шифрованным соединением, то может кто подскажет, с помощью какого инструмента можно из командной строки отправлять файлы с smtp.mail.ru, который уже давно 25 порт не использует.
Спасибо за помощь.
Автор: vsuwi
Дата сообщения: 27.06.2016 13:06
чисто навскидку: попробуй запустить из под админа.
Автор: ipmanyak
Дата сообщения: 27.06.2016 13:42
Clan_F6 На фаере 465 порт не закрыт? Для начала
telnet smtp.mail.ru 465
если будет черное окно без отбоя, тогда порт открыт.
Умеет ли BLAT слать по SSL ? Имхо не умеет, так в доках есть примеры использования stunnel в паре с blat.
Погляди на mailsend - https://github.com/muquit/mailsend/
этот умеет
-ssl - SMTP over SSL
https://github.com/muquit/mailsend/#features
Автор: vlary
Дата сообщения: 27.06.2016 15:13
Clan_F6
Цитата:
если blat.exe не умеет работать с шифрованным соединением
Не умеет, это факт. Можно сделать к нему довесок ,
о чем можешь прочесть в теме по blat в разделе "Программы".
Цитата:
с помощью какого инструмента можно из командной строки отправлять файлы
А тупо прочесть хотя бы несколько предыдущих постов никак?
Я давал ссылку на простенький VbScript, который это умеет.

Автор: Clan_F6
Дата сообщения: 27.06.2016 17:28
Всем спасибо за оперативную помощь.
Mail Alert отлично справился с поставленной задачей. (http://forum.ru-board.com/topic.cgi?forum=8&topic=51370)
PS: Конечно же порт был не заглушен, CMD запущена от Админа, ну и конечно же тупо прочел всю переписку до постановки вопроса.
Автор: KLASS
Дата сообщения: 23.07.2016 07:50
Мне тут понадобилось отправлять мыло после смены динамического, внешнего IP роутера, который выдает провайдер. Скрипт нашелся в сети на PowerShell и в ОСках его чуть подправил kirsha, собссно, что получилось

Страницы: 1

Предыдущая тема: В outlook дублируются сообщения


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.