Batch
Небходимо узнавать IP-адрес компьютера, с динамическим IP.
Для этого взял blat.
Сделал вот такой *.bat файл, с последующей компиляцией в *.exe:
ping -n 1 -w 300000 192.255.255.255 >nul - для паузы в 5 минут после загрузки компа
echo data >> ip.txt
echo Ъte% >> ip.txt
echo ip >> ip.txt
GetMyIP.exe >> ip.txt
blat.exe -installSMTP -server smtp.rambler.ru -f почта@rambler.ru -u логин -pw пасс
blat.exe -to почта@rambler.ru -s "IP" -bodyF ip.txt
del ip.txt
:loop - сделал цикл, на случай если инет не подключат в течении 5 минут после включения компа
ping -n 1 -w 1800000 192.255.255.255 >nul
echo data >> ip.txt
echo Ъte% >> ip.txt
echo ip >> ip.txt
GetMyIP.exe >> ip.txt
blat.exe -installSMTP -server smtp.rambler.ru -f почта@rambler.ru -u логин -pw пасс
blat.exe -to почта@rambler.ru -s "IP" -bodyF ip.txt
del ip.txt
goto loop
обзываю файл run.exe
добавляю в реестр для автозагрузки:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Blat /t REG_SZ /d "%SYSTEMROOT%/system32/administration_assembly/access_protocol/run.exe" /f
Итог: если запустить в ручную все прекрасно работает, но если перезагрузить комп, в процессах висит run.exe, cmd, ping... но IP на почту не приходит, в чем может быть проблема ?
запустите не run, а бат и снабдите трассировкой. Сходу, вместо ping давно уже есть команда timeout. По логике непонятно. Зачем ждать 5 мин, когда можно проверять конкретно наличие ip? При чём тут вкл компа, разве он не работает 24/7? Провайдер не скрывает правило изменения адреса, обычно сессия ограничивается сутками, но можно не морочиться и отправлять его нпрм раз в час. а ещё лучше не на мыло, а на ftp.
И ещё, ip можно и так взять
@for /f "usebackq tokens=11 delims=< " %%i in ('wget -q --output-document=- [ссылка заблокирована по решению администрации проекта]') do @echo %%i
а у тебя blat.exe где лежит? может он не находится?