Как я могу запустить программу на Python через telnet? - PullRequest
2 голосов
/ 18 ноября 2009

Как запустить программу на Python, чтобы она выводила свой STDOUT и вводила свой STDIN в / из удаленного клиента telnet?

Все, что делает программа, это распечатывает текст, затем несколько раз ожидает raw_input (). Я хочу, чтобы удаленный пользователь использовал его без необходимости доступа к оболочке. Может быть однопоточным / однопользовательским.

Ответы [ 4 ]

10 голосов
/ 18 ноября 2009

В системе Unix для этого вы можете использовать inetd . Он позаботится об открытии сетевого подключения для вас, чтобы ваша программа работала как есть.

5 голосов
/ 18 ноября 2009

Включите скрипт Python в оболочку для этого пользователя. (Или, если это не сработает, оберните его в bash-скрипт или даже в исполняемый файл).

(Возможно, вам придется поместить его в / etc / shells (или эквивалент))

4 голосов
/ 18 ноября 2009

Если вам не нужна полная функциональность telnet, вы можете просто использовать сокет.

Проверьте модуль Socket Server в стандартной библиотеке Python. Это позволит вам легко написать программу, которая будет прослушивать порт для ввода / вывода.

Он не будет поддерживать правильное согласование протокола Telnet, но вам может не понадобиться это для того, что вы делаете.

0 голосов
/ 19 ноября 2009

Вы можете просто создать нового пользователя linux и настроить его оболочку на свой скрипт.

Затем, когда они telnet и вводят имя пользователя / пароль, программа запускается вместо bash или любой другой оболочки по умолчанию.

...