Closed dopcn closed 8 years ago
我不是很了解 resolv.h 里的API,但是看命名,QNResolver 只支持请求域名对应 ipv4 地址是吗?
在测试用例中的 testUrlQueryV6
里query 方法返回的是ipv4 地址
2016-05-30 15:03:10.506 xctest[64877:1859172] host ipv6test.qiniu.com 115.231.183.168
set dns server在 这里 https://github.com/qiniu/happy-dns-objc/blob/master/HappyDNS/QNResolvUtil.m#L82
另外 query ipv6 只要针对这里处理,增加ns_t_aaaa记录就行, int len = res_nquery(res, host, ns_c_in, ns_t_a, answer, sizeof(answer));
之所以返回ipv4 是因为要保持兼容 1 ipv6的url需要修改,依赖的程序如果没有处理不能正常工作 2 目前ipv6 不是主流,只是为兼容性处理,不能因为ipv6 妨碍以前正常工作的代码。
release 里写了全面兼容 ipv6,不过我对照这片文章过了一下几个兼容点时,其中有一点
在0.3.3.1版本的 setup_dns_server 里只有使用 res_ninit ,这样也可以兼容 ipv6 吗?
多谢