Использование TIdTelnet для отправки команды SIGNAL NEWNYM в VidaliaDelphi , Интернет и Сети , TelnetВ данной статье мы рассмотрим, как использовать компонент TIdTelnet для отправки команды SIGNAL NEWNYM в Vidalia, графическом интерфейсе Tor. Vidalia предоставляет возможность менять identidad Tor, нажав кнопку "New identity". Мы хотим воспроизвести это поведение в нашем приложении, используя TIdTelnet. Сначала давайте рассмотрим код, который был использован в вопросе:
По словам автора вопроса, этот код не работал для него. Даже после отправки команды, он получал тот же самый прокси. Причина, по которой этот код не работает, заключается в том, что SendCmd() метод не может быть использован с TIdTelnet. TIdTelnet использует внутренний поток чтения, который непрерывно считывает данные из сокета, поскольку Telnet — асинхронный протокол, который может получать данные в любое время. SendCmd() метод делает собственное внутреннее чтение для получения ответа на отправленную команду. Две операции чтения мешают друг другу, что является проблемой tanto в Indy 9, как и в Indy 10. Чтобы отправить исходящую команду с помощью TIdTelnet, вы должны использовать его SendCh() метод для отправки каждого символа в отдельности (если вы обновитесь до Indy 10, TIdTelnet имеет метод SendString(), который обрабатывает это для вас) и затем дождаться события OnDataAvailable, чтобы обработать ответ по мере необходимости. Однако, если Tor фактически не использует настоящий протокол Telnet (с последовательностями Telnet и всеми), тогда вы лучше используйте TIdTCPClient вместо TIdTelnet. TIdTelnet — это клиент, специфический для Telnet, а не общий клиент TCP/IP, как TIdTCPClient. Вот пример кода, который демонстрирует, как отправить команду SIGNAL NEWNYM с помощью TIdTCPClient в Indy 10:
В этом примере мы сначала подключаемся к серверу, затем отправляем команду AUTENTICATE, затем отправляем команду SIGNAL NEWNYM и finally пишем 'quit', чтобы закрыть соединение. В заключение, мы рассмотрели, почему код, использованный в вопросе, не работал и предложили альтернативный подход для отправки команды SIGNAL NEWNYM в Vidalia с помощью TIdTCPClient. В этой статье рассматривается, как использовать компонент TIdTelnet для отправки команды SIGNAL NEWNYM в Vidalia, графическом интерфейсе Tor, чтобы воспроизвести поведение нажатия кнопки 'Новая identidad' в приложении с помощью TIdTelnet. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |