Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何显示客户端';使用c套接字程序在报告中显示的ip地址?_C - Fatal编程技术网

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

如何显示客户端';使用c套接字程序在报告中显示的ip地址?,c,C,I服务器报告需要在服务器处理的报告中显示客户端ip地址,也就是说,我需要显示从哪个客户端发送报告。我该怎么做?有人能帮我吗?用这个: char clntName[INET6_ADDRSTRLEN]; char portName[6]; if (getnameinfo(&client_address, sizeof client_address, clntName, sizeof(clntN

I服务器报告需要在服务器处理的报告中显示客户端ip地址,也就是说,我需要显示从哪个客户端发送报告。我该怎么做?有人能帮我吗?

用这个:

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");
}

下面代码中的“remoteIp”字符数组将为您提供客户端的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)
printf()+未初始化的portName字符数组可能会导致崩溃。或者至少printf()输出一些垃圾。