私たちはIPV4アドレスから合成IPV6アドレスを取得するために、Android API 14以上(NDK r12を使用するC++コードで)でgetaddrinfoを使用しようとしています。これは、NAT64を使用するIPV6のみのネットワークで使用するためのものです。しかし、getaddrinfoは、aiflagsが設定されていればEAI_BADFLAGSを返します(AI_V4MAPPED | AI_ADDRCONFIG)。AndroidでgetaddrinfoエラーEAI_BADFLAGSを返します
struct addrinfo *ai, hints;
memset(&hints, 0, sizeof(hints));
hints.ai_socktype = SOCK_DGRAM;
hints.ai_flags = (AI_V4MAPPED | AI_ADDRCONFIG);
hints.ai_family = AF_UNSPEC;
int error = getaddrinfo("46.23.43.12", "80", &hints, &ai);
if(error == 0)
Linuxとの主な違いはありますか?
ありがとう、それはかなりそれに答える。これは、Androidで実装されているgetaddrinfoがIPV6合成アドレスを生成できないことを意味しますか? – tech74
はい、そうです。 – mstorsjo
getaddrinfoができない場合、IPV4リテラルから合成IPV6アドレスを生成できるJava APIがあるかどうか疑問です – tech74