質問

マシンのIPを取得しようとしています。バインドしているソケットが聞いています。印刷されたポート番号は正常に機能しますが、アドレスは「0.0.0.0」です。関連するコードは次のとおりです。 res に渡されました getaddrinfogetsockname このコードに到達する前に。

char ip[INET_ADDRSTRLEN];
struct sockaddr_in *ipv4 = (struct sockaddr_in *)res->ai_addr;
void* addr = &(ipv4->sin_addr);

inet_ntop(res->ai_family, addr, ip, sizeof ip);

std::cout << "SERVER_ADDRESS " << ip << std::endl;
std::cout << "SERVER_PORT " << ipv4->sin_port << std::endl;

何が間違っているのでしょうか?

役に立ちましたか?

解決

のアドレス 0.0.0.0 ソケットがすべてのアドレスで聴いていることを意味します。のような特定のアドレス 127.0.0.1 サーバーがそのアドレスで聞いているだけでなく、他のアドレスではそうではないことを意味します。

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