質問

基本的なソケットコマンドのソケットアドレスを検索するために 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?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top