c++ - Qt::如何在Linux中识别/检测系统是否被其他系统远程访问

标签 c++ c linux qt remote-access

我正在 ubuntu 中开发一个应用程序以通过 QT 远程访问其他系统。两个系统都在运行一些 Qt 应用程序。我想使用 Qt 编程远程检查/更改另一个系统。

我想在远程系统上添加一个按钮(作为退出屏幕),它应该是“仅当系统被远程访问时才启用”,这样我就可以用它来关闭远程访问屏幕。

有什么方法可以通过编程获取远程访问时的状态???

我在论坛上找到了一些解决方案,但它们特别适用于 Windows。 我正在寻找 Linux 中的一些解决方案。

请提供建议/链接,以便我可以解决这个问题。

提前致谢

最佳答案

如果您正在使用 X11 的远程显示功能协议(protocol),您可以检查 DISPLAY 变量的值。对于本地连接,通常以:0开头;对于远程连接,它包含显示服务器的主机名。对于通过 ssh -X 的连接,它可以是 localhost:10 并且 ssh 也在设置 SSH_CLIENTSSH_CONNECTION 环境变量。

否则,您应该更好地定义什么是您的远程访问(即更多地解释您的应用程序)。您的 Qt 应用程序也可能是例如一些 TCP/IP 服务器。也许是 getpeername(2)系统调用可能是相关的。

如果您只是对哪些远程连接流入您的盒子感兴趣(独立于特定应用程序),您可以阅读(例如使用 popen)命令 netstat -a -n 的输出 或使用一些 /proc/net/ 目录。

关于c++ - Qt::如何在Linux中识别/检测系统是否被其他系统远程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576334/

相关文章:

c - 忽略 float 组中的字符?

c - 根据用户输入声明特定宽度变量的最佳方法

linux - 当从 Linux 服务器中的 sqlplus 插入时,Windows-1252 (80-9F) 控制字符在 oracle db 中插入为 �

c++ - 线程有不同的栈和堆吗?

linux - 将任意字符串(从标准输入或文件)读入 bash 并在不进行任何 shell 扩展的情况下使用它

c++ - 为什么通过引用返回 vector 比通过 move 返回快得多?

c - 函数 ptrs 数组上的 realloc() 导致 SIGABRT

c++ - 在构造函数中使用重载运算符+在C++中实现多项式

c++ - STL 容器在该类的声明中持有类

c++ - 如果 C++ 共享库在 C 项目中抛出异常会发生什么