虚假的IP地址从getaddrinfo&inet_ntop
-
21-09-2019 - |
题
我一直在使用getaddrinfo寻找座地址为基础插座的命令。但最近,地址就回到我们对于伪造的IP地址,这是我们发现使用inet_ntop.我已经试过我的代码,以及提供在 Beej指南, 和他们都产生相同的结果。这里的代码:
struct addrinfo hints, *info;
int status;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
if(status = getaddrinfo(address, port, &hints, &info)) {
fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(status));
}
char ip4[INET_ADDRSTRLEN];
inet_ntop(AF_INET, info->ai_addr, ip4, INET_ADDRSTRLEN);
std::cout<<ip4<<std::endl;
无论什么地址我用,它总是给我一个IP的形式
16.2.x.y
在256*x+y等于港口号。有没有人曾见过这种事情发生,或者任何人都可以猜测为什么这是给我这个?
解决方案
你不是应该穿
((sockaddr_in const *)info->ai_addr)->sin_addr
要 inet_ntop
?
不隶属于 StackOverflow