如何在JavaScript中检测DNS查找错误
How to detect DNS lookup error in JavaScript
我想知道有没有一种方法可以检测JavaScript中的DNS查找错误。
有什么代码或技巧吗?
或者这是一项不可能完成的任务?
有人能解释一下吗?非常感谢!
当随机最终用户的机器上出现"DNS查找失败"时,无法准确预测会发生什么行为。
例如,当在不存在的域(NXDOMAIN)上执行查找时,许多ISP会返回自己的"帮助者"搜索页面/站点。这也被称为DNS劫持。
用户还可以在本地"主机文件"上配置自己的域条目,这将给出"假阳性"。
为了获得更可靠的方法,您应该在服务器上执行此查找,这样可以更好地指示域是否可以访问到更广阔的世界。它还可以让你区分网站是否只是关闭或无法从用户的机器访问,而不是无效条目。
如果你指的是err_name_not_resolve,那就是没有连接或无法联系dns服务器的结果。如果您使用的是XHR,那么只需为您的XHR.onerror:xhr.onerror = () => { alert('Failed DNS resolution'); };
分配一个函数即可。注意,错误仍然会出现在控制台中,这是故意的,也是故意的。如果xhr.onload没有被定义,它也应该仍然尝试运行,所以这是需要记住的另一件事。
如果你的意思是找到一个页面,但它不存在,那么只需返回404。使用xhr,您只需阅读if(xhr.status === 404) { ... }
。
如果你的意思是找到一个页面,但得到了错误的IP地址,试图通过dns劫持钓鱼网站,有几种方法可以解决这个问题。第一种是对IP地址进行硬编码,第二种是证书,第三种是任何类型的隐藏代码,两台计算机都应该知道如何相互验证。可能还有其他的方法,这只是我的想法。
- 正在全局范围中查找JavaScript函数
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- es6 相当于下划线查找位置
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何在不传递此信息的情况下查找被调用的元素
- Lodash 从值数组中查找数组中的值
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 使用RegExp查找url中的字符
- 查找元素高度,包括边距
- 使用JS查找数组的平均值
- 查找最短和最长日期
- 猫鼬在特定记录中查找嵌套记录
- 使用javascript在MVC中查找网格长度时出错
- 在Javascript数组中查找绝对最大值
- 在javascript中查找单词
- 对特定服务器的 DNS 查找
- 如何在JavaScript中检测DNS查找错误
- 使用addProgressListener和onStatusChange获取页面的DNS查找时间