文章链接:https://codemouse.online/archives/2020-03-16162906
通过监听的fd获取对端地址
void getipAddr(char ipbuf[], int fd)
{
struct sockaddr_storage addr;
socklen_t len = sizeof(addr);
// 获取数据放到sockaddr结构体
printf("%d", getpeername(fd, (struct sockaddr*)&addr, &len));
struct sockaddr_in *in = (struct sockaddr_in *)&addr;
// 转换地址成为点分十进制
inet_ntop(AF_INET, &in->sin_addr, ipbuf, MAXBUFLEN);
fprintf(stdin, "%s\n", ipbuf);
}