Rad*_*sik 9 c# dns android xamarin
DNS协议的UDP响应大小有限制.它只能包含~500字节.当数据超出限制时,所有DNS服务器都会设置标记"截断"作为响应,但有些(例如谷歌8.8.8.8)没有放任何IP以响应其他人只是放置修剪列表.像nslookup和dig这样的工具尝试通过TCP询问DNS服务器以获得完整响应,但android却没有.相反,它失败了.失败的代码示例如下.
var host = "prdimg.affili.net";
var addressList = Dns.GetHostEntry(host).AddressList;
Run Code Online (Sandbox Code Playgroud)
Modernhttpclient使用获取IP的方式相同,因此我无法从prdimg.affili.net获取文件.为了解决这个问题,我已经实施了临时解决方案.我使用GooglePublicDnsClient解析DNS,然后使用UriBuilder将主机名更改为已解析的ip.
var builder = new UriBuilder(originalUrl);
builder.Host = ip;
但该解决方案有两个缺点
谁能提出更好的解决方案?
归档时间: |
|
查看次数: |
364 次 |
最近记录: |