我的服务器报告需要在报告中显示服务器处理的客户端IP地址,即我需要显示报告发送的客户端。我该怎么做呢?有人可以帮帮我吗?
答案 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)