getaddrinfo と inet_ntop からの偽の IP アドレス
-
21-09-2019 - |
質問
基本的なソケットコマンドのソケットアドレスを検索するために getaddrinfo を使用してきました。しかし、最近、返されるアドレスは、inet_ntop を使用して見つけた偽の IP アドレスのものです。自分のコードと、で提供されているコードを試しました ビージのガイド, 、どちらも同じ結果を生成します。コードは次のとおりです。
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