C++ 如何使用libssh获取客户端ip地址

C++ 如何使用libssh获取客户端ip地址,c++,server,ip,client,libssh,C++,Server,Ip,Client,Libssh,我正在使用libssh来创建自己的ssh服务器(某种蜜罐)。我想将连接的客户端的ip地址保存到我的日志文件中。如何获取此IP地址?用C++编程。提前谢谢各位 这里是我正在使用的一个小函数 s = ssh_get_fd(session); getpeername(s, ...); string getClientIp(ssh_session session) { struct sockaddr_storage tmp; struct sockaddr_in *sock;

我正在使用libssh来创建自己的ssh服务器(某种蜜罐)。我想将连接的客户端的ip地址保存到我的日志文件中。如何获取此IP地址?用C++编程。提前谢谢各位

这里是我正在使用的一个小函数

s = ssh_get_fd(session);
getpeername(s, ...);
string getClientIp(ssh_session session) {

    struct sockaddr_storage tmp;
    struct sockaddr_in *sock;
    unsigned int len = 100;
    char ip[100] = "\0";

    getpeername(ssh_get_fd(session), (struct sockaddr*)&tmp, &len);
    sock = (struct sockaddr_in *)&tmp;
    inet_ntop(AF_INET, &sock->sin_addr, ip, len);

    string ip_str = ip;

    return ip_str;
}
它基于函数“get_client_ip”,其中是完整的SSH蜜罐实现