Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Чт Июл 03 2003 16:47 Заголовок сообщения: telnet proxy |
|
|
Hi all ! Я никогда под сети не программировал, а тут такая задача, в общем сориентироваться не могу. Подскажите плз что читать надо ? А задача такая. Есть програмка которая подключается по телнету к некоторому устройству и с ним работает. Но если прямого соединения на это устройство отсутствует, то можно по телнету же зайти на сервер, там выполнить пару команд и он нас подключит к этому устройству и дальше работаем как обычно. Проблема в том что програмка эта не умеет давать лишних команд. Вот я и хочу сделать эакий telnet-proxy который-бы в нужный момент посылает нужные команды, а потом, без премудростей, если такое возможно, просто соединяет вход с выходом. |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Чт Июл 03 2003 17:41 Заголовок сообщения: Re: telnet proxy |
|
|
Сети тут, по-моему, ни при чем.
Возможен такой вариант: на том сервере, к которому ты подключаешься, в качестве обслуживающей программы вместо шелла поставить скрипт, который даст нужные команды. Впрочем, это не единственный вариант для автоматического выполнения определенных команд при подключении пользователя.
При таком способе от твоей программы ничего не требуется -- только работать.
PS. Юникс vs дос-видны в отношении прикладных программ. Юникс: каждая программа делает то, для чего предназначена, вспомогательные действия делают другие программы (которые предназначены для таких действий), а администратор делает настройку, обеспечивающую хорошее взаимодействие всех программ. Дос-винды: каждая программа делает то, для чего предназначена, и все, что может потребоваться во всех возможных случаях, а администратор тупо жмет "ок" при установке, а затем проклинает производителей программ и операционной системы всех вместе и каждого по отдельности. |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Пт Июл 04 2003 10:47 Заголовок сообщения: Re: telnet proxy |
|
|
Подменить шел скриптом не подходит, т.к. я там не один и хозяин сервера не я, и вообще мне нужно оставить возможность логиниться на сервер по человечески. А диалог такой: Я: telnet deviceIP device: SEND USER NAME |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Пт Июл 04 2003 10:49 Заголовок сообщения: Re: telnet proxy |
|
|
Подменить шел скриптом не подходит, т.к. я там не один и хозяин сервера не я, и вообще мне нужно оставить возможность логиниться на сервер по человечески. А диалог такой: Я: telnet deviceIP device: SEND USER NAME : Я: SHURIK device: SEND PASSWORD : Я: PASSWORD device: OK : т.е. на сервере как минимум нужно создать учётную запись SHURIK. Но девайсов несколько, значит переключаться между ними придётся с другого логина ... бардак. Я представляю себе так. На локальной машине крутится прога в которой есть клиент сокет и сервер сокет, а также имена конкретных девайсов и возможность выбора одного из них. Когда сервер сокет почувствует подключение, на клиент сокете инициируется подключение к серверу : сокет: telnet serverIP server: login: сокет: shurik server: password: сокет: the_password server: ok сокет: connect_utility connect_utility: ok сокет: open the_device а потом просто соединяем клиент сокет и сервер сокет пайпами (или типа того) device: SEND USER NAME : и.т.д.
Так можно ? И как их вообще настраивают, эти сокеты ? Может я слишком упрощённо понимаю ? |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пт Июл 04 2003 13:09 Заголовок сообщения: Мне кажется, что ты понимаешь, но слишком усложнённо. (+) |
|
|
В /etc/passwd записано, какая программа обслуживает пользователя shurik. Тебе нужно после подключения выполнить определённые команды. Тут возможны три (невзаимоисключающих) варианта:
1. (Его я предложил в предыдущем письме) обслуживающая программа такова, что она сама при запуске исполняет нужные команды. Такой вариант, как выяснилось, не подходит, так как владелец сервера не хочет возиться.
2. Обслуживающая программа допускает такую настройку, при которой она (обслуживающая программа) исполняет нужные команды. Такой вариант возможен, но при условии, что владелец сервера разрешает пользователям менять свои настройки. Биллом передрал эту концепцию у юникса и назвал профилем (в разных виндах) и автоэкзек.батом (начиная с той версии доса, где есть меню из конфиг.сыса).
3. (Твоя) клиентская программа после обнаружения соединения сама даёт нужные команды. Вероятно, это то, что ты ищешь, хотя это, скорее, в стиле доса-виндов, чем в стиле юникса. Но стандартные телнетовские клиенты чаще не подходят, так как они предназначены просто для передачи ввода с клавиатуры (а не от другой программы!) на сервер. Поэтому тебе нужно написать программу, которая будет обрабатывать ввод (транслируя его в команды, передаваемые по телнету) и ответный вывод (отображая его в удобочитаемом виде). Известные примеры такого рода программ -- это (клиенты) ftp, http, smtp, pop3 и т. д. |
|
Вернуться к началу |
|
|
|