如何使用c套接字程序在报告中显示客户端的IP地址?

时间:2013-11-27 06:48:34

标签: c

我的服务器报告需要在报告中显示服务器处理的客户端IP地址,即我需要显示报告发送的客户端。我该怎么做呢?有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

使用它:

char clntName[INET6_ADDRSTRLEN];
char portName[6]; 

if (getnameinfo(&client_address,
                sizeof client_address,
                clntName,
                sizeof(clntName),
                NULL,
                0,
                NI_NUMERICHOST|NI_NUMERICSERV|NI_NUMERICSCOPE) == 0) {
    printf("Client = %s/%s\n",clntName,portName);
} else {
    printf("Unable to get address\n");
}

答案 1 :(得分:0)

以下代码中的'remoteIp'char数组将为您提供客户端的IP地址,您可以使用字符串函数进行打印。 'fd'是服务器端口的监听套接字..

struct sockaddr_in remoteAddr;
int size = sizeof(remoteAddr);
char remoteIp[10] = {0};
acceptFd = accept(fd, (struct sockaddr *)&remoteAddr, &size);
inet_ntop(AF_INET, &remoteAddr.sin_addr, remoteIp, INET_ADDRSTRLEN)