iOS - Obtenha o endereço do servidor DNS do dispositivo na rede somente IPv6
Estou tentando obter o endereço do servidor DNS do dispositivo enquanto conectado à rede somente IPv6 no iOS. O código a seguir funciona bem quando conectado à rede IPv4, mas não funciona na rede IPv6. Código retirado desteresponda.
res_ninit(&_res);
res_state res = &_res;
for (int i=0; i < res->nscount; i++) {
sa_family_t family = res->nsaddr_list[i].sin_family;
if (family == AF_INET) {
NSLog(@"IPv4");
char str[INET_ADDRSTRLEN]; // String representation of address
inet_ntop(AF_INET, & (res->nsaddr_list[i].sin_addr.s_addr), str, INET_ADDRSTRLEN);
} else if (family == AF_INET6) {
NSLog(@"IPv6");
char address[INET6_ADDRSTRLEN]; // String representation of address
inet_ntop(AF_INET6, &(res->nsaddr_list [i].sin_addr.s_addr), address, INET6_ADDRSTRLEN);
} else {
NSLog(@"Unspecified");
}
}
Na rede IPv6,sin_family
é sempreAF_UNSPEC
. Alguma sugestão / alternativa?