解析浏览器的DNS缓存和清除如何查看浏览器缓存Java实现

日期: 栏目:文章分享 浏览:1062 评论:0

前言

DNS( Name )域名系统,因为访问一台服务器只能通过IP来访问,所以需要先将域名转换成IP地址。

解析流程

以浏览器访问网址为例,

检查浏览器缓存中是否存在该域名对应的IP,如果存在则解析结束,否则继续。

检查操作系统的hosts文件,以系统为例,一般在 C:\\\\etc 下谷歌浏览器清除DNS缓存的方法,如果有则结束,否则继续。

检查操作系统的dns缓存,如果存在则结束,否则继续,以系统为例

 查询dns缓存           ipconfig /displaydns
 导出dns缓存到文件     ipconfig /displaydns > D:/testjar/dns.txt
 清除dns缓存           ipconfig /flushdns

以博客园域名 为例,查询出的记录格式为

 记录名称. . . . . . . : www.cnblogs.com
 记录类型. . . . . . . : 1
 生存时间. . . . . . . : 229
 数据长度. . . . . . . : 4
 部分. . . . . . . . . : 答案
 A (主机)记录  . . . . : 101.37.113.127

到本地域名服务器去查询,有则结束,否则继续。以系统为例

 查询域名服务器地址  ipconfig /all

本地域名服务器去查询根域名服务器(全球只有13台),会返回下级服务器(顶级域名服务器)的地址

本地域名服务器去查询顶级域名服务器(在这里就是com服务器),同样返回二级域名服务器的地址

本地域名服务器去查询二级域名服务器(服务器),同样返回三级域名服务器的

本地域名服务器去查询三级域名服务器(服务器),此时已经是最后一级,如果有则解析结束,且本地域名服务器缓存中加入此对应关系,方便下次查询,

同时返回给浏览器,没有找到则浏览器网页报错。

上面的1,2,3,4步可以叫做递归查询,5,6,7,8步可以叫做迭代查询。

浏览器查看和清除dns缓存清除dns缓存

以浏览器为例,://-urls/可以看到所有配置页面

://net-/#dns可以清除dns

查看dns缓存

://net-/#页面可以看到

点击://net-/可以看到

点击 Start to Disk 按钮,将当前状态保存到文件中

保存之后再点击 Stop 按钮

再打开页面(要FQ)

导入之前保存的文件谷歌浏览器清除DNS缓存的方法,就可以查看dns信息了

java中进行DNS解析

import java.net.InetAddress;
import java.net.UnknownHostException;
public class Client {
  public static void main(String[] args) throws UnknownHostException {
    InetAddress[] inetAddresses = InetAddress.getAllByName("www.baidu.com");
    for (InetAddress inetAddress : inetAddresses) {
      System.out.println(inetAddress.getHostAddress());
    }
    //36.152.44.96
    //36.152.44.95
  }
}

参考

浏览器之DNS解析过程详解

浏览器的DNS缓存查看和清除

如何查看浏览器的DNS缓存

Java实现通过IP获取域名,通过域名获取IP

标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看