我們試圖在Android API 14及更高版本(使用NDK r12的C++代碼中)上使用getaddrinfo從IPV4地址獲取合成的IPV6地址。這適用於帶有NAT64的僅IPV6網絡。但是,如果設置了aiflags,則getaddrinfo會返回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
只是想知道是否有任何Java API可以從IPV4文字生成合成的IPV6地址,如果getaddrinfo無法做到這一點 – tech74