如何找到套接字的IP地址c ++/c

Mik*_*e G 0 c c++ sockets

我想知道如何使用accept获取连接到服务器上的套接字的客户端的IP地址.我该怎么做?getpeername返回错误的IP地址,我似乎无法找到另一种方法.

在服务器上,在accept返回后,我这样做:

            char buf[INET_ADDRSTRLEN];
            struct sockaddr name; socklen_t len = sizeof(name);
            getpeername(sock_fd, &name, &len); //sock_fd is the socket im using
            inet_ntop(AF_INET, &name, buf, INET_ADDRSTRLEN);
            string ip = buf;
Run Code Online (Sandbox Code Playgroud)

Adr*_*ish 5

accept的第二个参数有此信息.