В то время как веб-браузеры отправляют, помимо прочего, User-Agent
строку, есть ли у протокола Telnet аналогичный метод определения чего-либо относительно подключающегося к нему клиента? ОПЕРАЦИОННЫЕ СИСТЕМЫ? Конкретный клиент Telnet? И т.п.
В то время как веб-браузеры отправляют, помимо прочего, User-Agent
строку, есть ли у протокола Telnet аналогичный метод определения чего-либо относительно подключающегося к нему клиента? ОПЕРАЦИОННЫЕ СИСТЕМЫ? Конкретный клиент Telnet? И т.п.
Ответы:
Там нет User-Agent, но есть несколько вариантов протокола Telnet для отправки информации о клиенте:
TERMINAL TYPE
- показывает используемый тип терминала (например, xterm, urxvt, screen-256color ...) Вы действительно не можете избавиться от этого, не ломая вещи. То же самое касается NAWS
отчетов о размере окна (столбцы × строки).
OLD-ENVIRON
и NEW-ENVIRON
- может выявить некоторые специфические переменные среды; некоторые клиенты также показывают свое полное доменное имя в фиктивной переменной $ DISPLAY. Отправка настроенного языкового стандарта системы ($ LANG, $ LC_ *) или часового пояса ($ TZ) также не редкость.
XDISPLOC
- как и выше, некоторые клиенты отправляют ваше полное доменное имя в качестве местоположения дисплея X11.
Если какие-либо функции аутентификации включены, они могут показать имя пользователя вашей ОС.
Наконец, весь набор распознанных опций варьируется в зависимости от реализации и может использоваться в качестве грубого отпечатка пальца в стиле Panopticlick.
frost $ echo $ DISPLAY : 0 мороз $ телнет telnet> установить параметры Покажет вариант обработки. telnet> открыть m-net.arbornet.org Попытка 162.202.67.157 ... Подключен к m-net.arbornet.org. Escape-символ '^]'. SENT DO SUPPRESS GO AHEAD ОТПРАВЛЕННЫЙ ТИП ТЕРМИНАЛА ОТПРАВЛЯЕТСЯ ВИЛ НАУС Отправлено будет скорость ОТПРАВЛЕНЫ БУДУТ НИЗКИ Отправлено будет ОТПРАВЛЯЕТСЯ БУДЕТ НОВАЯ ЭКОЛОГИЯ SENT DO STATUS Отправлено будет XDISPLOC RCVD DO AUTHENTICATION ОТПРАВЛЕННАЯ АУТЕНТИФИКАЦИЯ RCVD будет подавлять впереди RCVD DO TERMINAL TYPE RCVD DO NAWS ОТПРАВЛЕНО IAC SB NAWS 0 95 (95) 0 46 (46) RCVD DO TSPEED RCVD DO LFLOW RCVD DO LINEMODE SENT IAC SB LINEMODE SLC SYNCH NOSUPPORT 0; IP VARIABLE | FLUSHIN | FLUSHOUT 3; АО переменная 15; AYT NOSUPPORT 0; ABORT VARIABLE | FLUSHIN | FLUSHOUT 28; EOF VARIABLE 4; SUSP VARIABLE | FLUSHIN 26; ПЕРЕМЕННАЯ ЕС 127; EL VARIABLE 21; EW VARIABLE 23; RP ПЕРЕМЕННАЯ 18; СЛЕДУЮЩАЯ ПЕРЕМЕННАЯ 22; XON VARIABLE 17; XOFF VARIABLE 19; FORW1 NOSUPPORT 0; FORW2 NOSUPPORT 0; SENT DO SUPPRESS GO AHEAD RCVD DO NEW-ENVIRON RCVD БУДЕТ СТАТУС RCVD DO XDISPLOC RCVD зашифрует SENT DONT ENCRYPT RCVD DO OLD-ENVIRON ОТПРАВЛЕНО STD -ENVIRON RCVD IAC SB ТЕРМИНАЛ-СКОРОСТЬ ОТПРАВИТЬ ОТПРАВЛЕННАЯ СКОРОСТЬ IAC SB 38400,38400 RCVD IAC SB X-DISPLAY-LOCATION SEND Отправлено IAC SB X-DISPLAY-LOCATION IS "frost.nullroute.eu.org:0" RCVD IAC SB NEW-ENVIRON SEND ОТПРАВЛЕНО IAC SB NEW-ENVIRON IS VAR "DISPLAY" VALUE "frost.nullroute.eu.org:0" RCVD IAC SB ТЕРМИНАЛ-ТИП ОТПРАВИТЬ ОТПРАВЛЕННЫЙ ТЕРМИНАЛ-ТИП IAC SB "XTERM-256COLOR" RCVD DO ECHO Отправлено не эхо RCVD БУДЕТ ЭХО SENT DO ECHO RCVD IAC SB TOGGLE-FLOW-CONTROL OFF RCVD IAC SB TOGGLE-FLOW-CONTROL RESTART-XON RCVD НЕ ЛИНЕЙНОМ ОТПРАВЛЕНО RCVD IAC SB LINEMODE SLC IP ПЕРЕМЕННАЯ | ACK | FLUSHIN | FLUSHOUT 3; AO VARIABLE | ACK 15; ABORT VARIABLE | ACK | FLUSHIN | FLUSHOUT 28; EOF VARIABLE | ACK 4; SUSP VARIABLE | ACK | FLUSHIN 26; Переменная EC | ACK 127; EL VARIABLE | ACK 21; EW VARIABLE | ACK 23; RP VARIABLE | ACK 18; LNEXT VARIABLE | ACK 22; XON VARIABLE | ACK 17; XOFF VARIABLE | ACK 19; FreeBSD / i386 (m-net.arbornet.org) (pts / 5) авторизоваться:
-connect
), но есть все еще много допустимых применений для разумно пустого текстового соединения, подобно тому, как telnet дает вам, когда вызывается на сервере не-telnet. Конечно, ваша точка зрения остается, что telnet - это не просто программное обеспечение, это протокол; это немного похоже на вызов веб-браузера HTTP.
man telnet
единственная ошибка в списке:The source code is not comprehensible.
Любопытно, писал ли кто-нибудь обновленный клиент в чём-либо кроме C.