Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/371: Рейтинг темы: голосов - 371, средняя оценка - 4.78
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028

Запустить Telnet и выполнить несколько команд

15.09.2012, 17:17. Показов 69901. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех!
Господа, сильно не пинайте, просто совсем не знаю, как телнету передать команды, вручную каждый раз набирать не хочется. Нужен батник, чтоб запустил телнет и передал команды.
Вообще задача выглядит так:

зайдите по telnet на устройство:
пуск->выполнить
Bash
1
telnet 192.168.2.1
(или Ваш IP адрес)
Trying 192.168.2.1... Connected to 192.168.2.1.
Escape character is '^]'.

login root, пароль пустой (или тот пароль, на который вы сменили сами) введите команду(скопируйте её)
Code
1
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2012, 17:17
Ответы с готовыми решениями:

Можно ли и как выполнить одновременно несколько команд?
Помню, что-то такое было про управление потоками в CMD... Нужно запустить два цикла одновременно!

Выполнить подряд несколько команд
Всем привет. Имею довольно простой вопрос(наверное), суть которого будет понятна после просмотра кода. Нужно с помощью системных вызовов...

Выполнить несколько команд в командной строке
Доброго времени суток уважаемые программисты! Интересует такой вопрос есть bat файл в нем прописано: @echo off CD...

15
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.09.2012, 22:29
Везде видел работу с telnet после ее вызова
только посредством SendKeys, что на чистых командах Batch-а нереализуемо.

Для имитации нажатий клавиш можете попробовать воспользоваться сторонними утилитами,
такими как nircmdc.
Здесь есть пример: Расположить курсор в указанной области экрана и произвести нажатие расположенной в ней кнопки
1
887 / 189 / 16
Регистрация: 18.07.2011
Сообщений: 260
17.09.2012, 20:43
Если нужно часто копировать и вставлять в Telnet, то лучше пользоваться PuTTY
1
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
17.09.2012, 20:51  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Управление положением мышы на экране
Я сначала прочитал "положением мышцы". Сидел, втыкал )))
0
5 / 5 / 5
Регистрация: 25.09.2012
Сообщений: 42
22.11.2012, 01:28
доброй ночи. ребят подскажите пожалуйста. поставили такую задачку: написать программу для чистки запрашиваемого ящика. входные данные имя почтового сервера, порт, логин\пароль. т.к. довольно обще представлял себе реализацию, решил поступить следующим образом: написать скрипт который будет выполнять авторизацию и чистку ящика. а саму прогу заставить создавать .bat файл с заданными параметрами, по завершению его уничтожать. ну и сразу споткнулся прямо на написании .bat-ка. не могу понять каким образом ввести команды входа на сервер, авторизоваться ну и т.д. не ругайтесь, если что то не корректно написал, подобным занимаюсь в первые. просидел весь вечер в гугле и толком ничего не удалось заранее спасибо.
0
887 / 189 / 16
Регистрация: 18.07.2011
Сообщений: 260
22.11.2012, 10:48
Sher_vud, очень странная задача.
Не могу представить себе, что кто-то будет чистить почтовый ящик не просмотрев писем в нём.
Если же письма читаются стандартным почтовым клиентом, то он сразу же очищает ящик от писем.
При желании, в настройках почтового клиента можно поставить задержку, после которой сервер сам почистит почтовый ящик (через 2 дня, например).
0
5 / 5 / 5
Регистрация: 25.09.2012
Сообщений: 42
22.11.2012, 23:51
может быть, но эта задача поставлена подобным образом из-за специфики моей работы. что удалось пока сделать:
в .bat файле: авторизуемся на сервере вх. почты, для примера возьмем yandex.ru
Bash
1
telnet pop.yandex.ru 110
подключение к серверу происходит без проблем, а вот дальше проблема
как я понял в этом режиме ввод дальше USER и PASS производятся посимвольно с клавы и из батника ну никак не хочет он дергать нужные строки:
Bash
1
2
user [email]test@yandex.ru[/email]
pass test
пробовал выставлять паузу между вводам команд. не помогло.
так же пробовал авторизоваться по имени пользователя, при входе на сервер таким образом
Bash
1
telnet -l [email]test@yandex.ru[/email] pop.yandex.ru 110
пробовал так отправлять логин\пасворд
Bash
1
2
send "USER [email]test@yandex.ru[/email]\r"
send "PASS test\r"
на экране по прежнему ожидание ввода user\pass
пробовал еще так:
Bash
1
2
expect "+OK" ; send "USER [email]test@yandex.ru[/email]\r"
expect "+OK" ; send "PASS test\r"
так же к сожалению без результатов
где то вчера прочитал, что можно использовать методы класса с++ для посимвлоного ввода
Code
1
SendKeys
но вот каким образом все это реализовать пока не понятно
цикл для удаления писем планирую использовать такой:
Code
1
2
3
4
5
for {set i 1} {$i < 2000} {incr i} {
 expect "+OK"
 send "DELE $i\r"
}
send "QUIT\r"
Но с учетом вышеуказаных спотыков, вероятно придется его переделать.
пока бы решить проблему хотя бы с авторизацией.
Ребят если хоть что то сможете подсказать буду очень благодарен
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.11.2012, 00:38
Эмуляция клавиатурных нажатий:
Расположить курсор в указанной области экрана и произвести нажатие расположенной в ней кнопки
0
5 / 5 / 5
Регистрация: 25.09.2012
Сообщений: 42
23.11.2012, 01:03
Цитата Сообщение от Dragokas Посмотреть сообщение
Эмуляция клавиатурных нажатий
да я просматривал эти посты, прежде чем написать, у меня не получилось реализовать данную схему.
ребят в общем в итоге решил написать скрипт на vbs, синтаксис мне не знаком, поправьте, если не трудно
в целом вот что должно получиться:
Visual Basic
1
2
3
4
5
6
7
set my = VBScript
my.CreateObject("VisualScriptShell")
my.run(c\windows\system32\telnet.exe)
my.sendkeys("o pop.yandex.ru 110")
my.sendkeys("user [email]test@yandex.ru[/email]")
my.sendkeys("pass test")
vscript.sleep()
при компиляции сыпятся ошибки
я понимаю, что где то сильно ошибаюсь в синтаксисе, первый раз приходится писать, копаю литературу, благодарен буду за любую помощь
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.11.2012, 01:24
Visual Basic
1
2
3
4
5
6
7
8
9
10
Dim WshExec
With CreateObject("WScript.Shell")
    Set WshExec = .Exec("c\windows\system32\telnet.exe")
    WScript.Sleep 3000
    .AppActivate(WshExec.ProcessID)
    .sendkeys("o pop.yandex.ru 110")
    .sendkeys("user [email]test@yandex.ru[/email]")
    .sendkeys("pass test")
End With
Set WshExec = Nothing
0
5 / 5 / 5
Регистрация: 25.09.2012
Сообщений: 42
23.11.2012, 01:29
не много поправил, вот что получилось:
Visual Basic
1
2
3
4
5
6
7
8
set my = WScript.CreateObject("WScript.Shell")
my.run("c:\windows\system32\telnet.exe")
WScript.Sleep 100
my.SendKeys("o pop.yandex.ru 110")
WScript.Sleep 100
my.SendKeys("user [email]test@yandex.ru[/email]")
WScript.Sleep 100
my.SendKeys("pass test")
пока не понятно как послать управляющую команду ввода.
все заканчивается на вводе значения сервака к которому хочу законектиться

Добавлено через 1 минуту
Цитата Сообщение от Dragokas Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
With CreateObject("WScript.Shell")
* * .run("c\windows\system32\telnet.exe")
* * .sendkeys("o pop.yandex.ru 110")
* * .sendkeys("user [email]test@yandex.ru[/email]")
* * .sendkeys("pass test")
End With
wscript.sleep 1000
спасибо большое, не заметил Ваш пост, писал ответ, сей час попробую внести себе коррективы, по результатам отпишусь
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.11.2012, 01:32
Visual Basic
1
.SendKeys("~")
Visual Basic
1
.SendKeys("o pop.yandex.ru 110~")
http://www.devguru.com/technol... dKeys.html
0
5 / 5 / 5
Регистрация: 25.09.2012
Сообщений: 42
23.11.2012, 02:04
Цитата Сообщение от Dragokas Посмотреть сообщение
Visual Basic
1
SendKeys("o pop.yandex.ru 110~")
Спасибо Вам большое Вы очень выручили. я бы всю ночь наверное над этим бы скриптом сидел
вот что в итоге получилось:
Visual Basic
1
2
3
4
5
6
7
8
9
set my = WScript.CreateObject("WScript.Shell")
my.run("c:\windows\system32\telnet.exe")
WScript.Sleep 100
my.SendKeys("o pop.yandex.ru 110~")
WScript.Sleep 100
my.SendKeys("user [email]test@yandex.ru[/email]~")
WScript.Sleep 100
my.SendKeys("pass test~")
WScript.Sleep 100
на сервак заходит, авторизуется, все как надо. сей час попробую реализовать очистку. что получится отпишусь.
Dragokas спасибо еще раз Вам

Добавлено через 24 минуты
мне уже не удобно спрашивать, но вот споткнулся буквально на следующем шаге:
удаление писем то организовал, но только с конкретным идентификатором
а в цикле не получается, подставляет на вывод не значение переменной а ее имя
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
set my = WScript.CreateObject("WScript.Shell")
my.run("c:\windows\system32\telnet.exe")
WScript.Sleep 1000
my.SendKeys("o pop.yandex.ru 110~")
WScript.Sleep 1000
my.SendKeys("user [email]test@yandex.ru[/email]~")
WScript.Sleep 1000
my.SendKeys("pass 123456~")
WScript.Sleep 1000
For i = 1 to 10
i = i+1
my.SendKeys("dele i~")
next
WScript.Sleep 1000
my.SendKeys("quit~")
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.11.2012, 02:07
Visual Basic
1
my.SendKeys("dele " & i & "~")
2
5 / 5 / 5
Регистрация: 25.09.2012
Сообщений: 42
23.11.2012, 02:26
Dragokas спасибо Вам еще раз, все получилось

p.s. торопился раскрыл имайл, он тестовый, если кому надо пользуйтесь
p.s.2 сей час попробую написать програмку на с++ что бы весь процесс автоматизировать. как допишу сброшу исходники, может кому пригодятся
1
1 / 1 / 0
Регистрация: 16.08.2016
Сообщений: 13
19.01.2019, 12:04
А в фоне можно подобное сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2019, 12:04
Помогаю со студенческими работами здесь

Socket и понимание команд от telnet
Доброго всем, есть пример TCP сервера: #include &lt;stdio.h&gt; #include &lt;string.h&gt; //strlen #include &lt;stdlib.h&gt; //strlen ...

QTcpServer и прием команд от telnet
Необходимо написать серверное приложение, которое принимало бы команды от другого приложения, после некоторых действий возвращало бы ему...

Последовательный запуск команд DISM и TELNET
Всем доброго дня. Столкнулся с такой проблемой. При написании бат файла после команд dism /online /Enable-Feature...

Выполнение команд через telnet клиент. Написание скрипта
Доброго дня. При выполнении команды, к примеру, sh cdp en *, через telnet клиент, коммутатор выводит часть информации и дальше пишет&quot;...

Можно ли организовать выполнение команд Telnet с использованием VBS и Batch?
Есть компьютер на винде 7 и есть компьютер на линуксе. Нужно проверить работает ли процесс в линукс системе и в случае чего перезапустить....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru