LINUX.ORG.RU

Qt 5 QProcess интерактивная работа с SSH, Telnet, Ping

 , , ,


0

2

Всем привет, возникла у меня задача использовать в своей программе стандартные сетевые протоколы: SSH, Telnet, Ping.

Посмотрел в старых завалах своего кода - нашёл Qt - консоль для Telnet. Вот такая: https://yadi.sk/i/LLT8jyhhNPYWUg

В этой программе только Telnet over QTcpSocket. Но мне нужна такая-же программа, в которой будут ещё SSH, Ping, nslookup;

Конечно, можно всё это закодить на уровне сокетов, но я очень надеюсь сделать это через QProcess. Есть-ли у кого примеры такого готового кода?


QProcess это уже QIODevice, с ним можно делать всё(не совсем но интерфейс тот же) тоже что и с сокетом. Из подводных камней - надо обязательно проверить прототип под виндой, т.к. х3 как оно в культях реализованно, но асинхронный ввод вывод для пайпов под виндой есть не самая проработанная в 2021ом технология.

Однако, постановка у тебя мутная, например непонятно тебе нужна именно реализация ssh на Qt или возможность вызвать бинарник ssh из Qt. Это две сильно разные задачи по-уровню сложности, если вторую реально реализовать с нуля за пару часов, то первая потребует либо поиска уже готовой библиотеки и её привязки к решению либо реализации протокола с нуля, что уже может и недельку занять и две, и более в зависимости от многих факторов. Telnet это очень частный случай, т.к. очень простой концептуально протокол, хотя, почти уверен в твоей реализации тоже найдётся пара-тройка проблем.

Готовый код в разделе Job.

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

pon4ik ★★★★★
()
Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от pon4ik

Вообще задача не мутная. Чётко надо :

telnet, ping, nslookup.

SSH это уже про запас.

pup_kin
() автор топика
Последнее исправление: pup_kin (всего исправлений: 2)

а что мешает просто воспользоваться библиотеками:

  • libssh
  • libssh2
  • libtelnet
  • ldns
  • udns
  • libmicrodns
  • netwib
Silerus ★★★★
()
Ответ на: комментарий от Silerus

Забавно, но сложность работы с 3RD библиотеками конечно выше, плюс с каждой отдельной библиотекой нужно индивидуально читать документацию и разбираться.

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

Забавно, но я похоже оставлю свою самодельную консольку из скриншота в верхнем сообщении. ЛОЛ :)

pup_kin
() автор топика
Последнее исправление: pup_kin (всего исправлений: 1)
4 марта 2022 г.
Ответ на: комментарий от pup_kin

Проблема по-прежнему актуальна. За свою прогерско-админскую жизнь уже 3 раза была такая хотелка и все 3 раза приходилось на кривой козе съезжать, а так хочется юзать вместо либ - консольные клиенты.

pup_kin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.