Можно ли все сделать в Telnet?

Правда ли, что все, что вы делаете в Интернете, например просмотр веб-страниц и чтение электронной почты, вы можете делать с помощью Telnet?

3 ответа

Решение

Да, хотя это лишило бы преимуществ сжатия, и работа с фрагментарным GET-ответом или Base64-закодированным логином / паролем в SMTP была бы болезненной, поэтому я бы не рекомендовал использовать ее на практике, кроме как в целях тестирования, используйте Perl или python, если хотите делать что-то в Интернете автоматически.

Кроме того, если вы хотите делать запросы, которые неотличимы от запросов, выполняемых определенным браузером (необходимость делать это - печальная реальность, когда вы пытаетесь работать с сайтами, защищенными такими системами, как Bad Behavior), подумайте о написании мини- сервер, который будет выводить ваш запрос дословно (есть такие примеры, но они, вероятно, нуждаются в небольшой модификации). Тогда вы сможете использовать его в качестве шаблона для простых запросов к таким сайтам.

Например, попробуйте

telnet google.com 80

По завершении инициализации введите

GET / HTTP/1.0

и дважды нажмите ENTER (как того требует протокол HTTP). Вы получите 302 ответ, который браузер обычно использует, чтобы перенаправить вас на WWW.google.com.

Telnet может использоваться для (почти) необработанных TCP-соединений, и вы можете использовать с ним символьные протоколы, но есть некоторые различия:

Поэтому клиентское приложение Telnet также может использоваться для установления интерактивного необработанного сеанса TCP, и обычно считается, что такой сеанс, который не использует IAC (символ \377 или 255 в десятичном виде), функционально идентичен. Однако это не так, потому что существуют другие правила сетевого виртуального терминала (NVT), такие как требование, чтобы за символом возврата каретки (CR, ASCII 13) следовал символ NULL (ASCII 0), которые различают протокол telnet из необработанных сеансов TCP.

В противном случае вы можете использовать протоколы уровня приложений на основе символов, такие как HTTP, FTP, SMTP и IRC, используя Telnet. Так как читать и записывать сжатые данные довольно сложно, вы ограничены HTTP без сжатия HTTP/1.1. Для протоколов, которые являются полностью бинарными, вам не повезло.

Технически да, вы можете сделать это. но с прагматической точки зрения ответ - нет

например, я могу получить веб-страницу, используя

Телнет www.page.com 80

но я получу HTML-текст от него, а не, CSS, изображения и другие ресурсы.

Затем с помощью html-файла вы можете получать все остальные файлы с помощью последовательных вызовов telnet. css "тривиален" для получения, это то же самое, что получить файл, также js и другие "включенные" файлы. но двоичные файлы не так просты, потому что я должен загрузить их, а затем обработать, не считая того, что для некоторых ресурсов требуется определенный файл cookie и ссылка.

И веб-сайт может быть вынужден к z-сжатию и многим другим "деталям", которые "детализированы" в спецификации протокола, протокол, который почти не исправлен, и с несколькими исключениями.

Хотя это возможно, но это то же самое, что создать существующий сервис / протокол с нуля, но это то же самое, что сказать: "Я могу создать Windows, просто" высовывая "нули и единицы". <- возможно, но это займет много абсурдного времени.

Примером сайта, который вы не можете загрузить полностью, является gmail.com, потому что он также включает в себя дополнительную сложность: javascript (исключая Lynx, потому что он не является родным, ни реальным опытом).

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

Другие вопросы по тегам