proftpd-在连接处于活动状态时在服务器上查找客户端IP

proftpd-在连接处于活动状态时在服务器上查找客户端IP

我需要从 Linux 上的 proftpd 获取特定连接的客户端 IP(我知道 pid)。我在 /proc/ 目录中搜索过,但无法获取有关 IP 的任何信息。

有人知道如何获取或在哪里找到这些信息吗?

ps 抱歉,但我忘了提到所有这些都应该在 FUSE 实现内部发生,因此是否可以在不使用外部程序的情况下获取该信息,或者是否有一个库可以帮助我做到这一点?

答案1

正如您后来补充说,您想从 C 程序中执行此操作,则可以直接询问 Proftpd。只需设置您的 Proftpd 实例,这样它就可以保存记分牌文件。然后您可以直接解析该文件(这使您依赖于 Proftpd 的内部文件的格式),或者您可以解析命令的输出,ftpwho -v -o oneline即 Proftpd 的命令使用记分板文件输出有关连接用户的不同类型信息。

答案2

检查该fuser工具。它允许识别进程打开的文件和套接字。这应该是一个很好的起点。

答案3

尝试该netstat -tnp命令,它将显示所有 TCP 连接 + IP + 该连接背后的进程的 PID。您还应该能够在 Proftpd 日志文件中找到客户端 IP。

相关内容