基本的なソケット コマンドのソケット アドレスを検索するために getaddrinfo を使用しています。しかし、最近、それが返すアドレスは、inet_ntop を使用して見つけた偽の IP アドレスのものです。Beej's Guideで提供されているコードと同様に、コードを試してみましたが、どちらも同じ結果が得られました。コードは次のとおりです。
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 はポート番号に等しくなります。誰かがこれが起こるのを見たことがありますか、それともなぜ私にこれを与えているのか誰か推測できますか?