7

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

3 ответа3

8

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

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

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

telnet google.com 80

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

GET / HTTP/1.0

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

7

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. Для протоколов, которые являются полностью бинарными, вам не повезло.

1

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

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

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .