dig命令查询结果解析(本文是转发)

2024-03-07 09:40

本文主要是介绍dig命令查询结果解析(本文是转发),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接:https://blog.csdn.net/smile_YangYue/article/details/105074197


1.DNS是什么

DNS (Domain Name System 的缩写)的作用简单而言,就是根据域名查出IP地址。

2.通过dig展示DNS根据域名查出IP地址的过程

dig www.baidu.com

查询结果可以分成6段

第1段 查询统计

dig程序的版本号(9.10.6)和要查询的域名
全局的设置选项

获取查询结果统计如下:

opcode 操作码,QUERY,代表是查询操作

status 状态,NOERROR,代表没有错误

id 编号,54864,16bit数字

flags 标志,如果出现就表示有标志,如果不出现就未设置标志:

  qr query,查询标志,代表是查询操作

  rd recursion desired, 代表希望进行递归(recursive)查询操作

  ra recursive available 在返回中设置,代表查询的服务器支持递归(recursive)查询操作。

  aa Authoritative Answer 权威回复,如果查询结果由管理域名的域名服务器而不是缓存服务器提供的,则称为权威回复。

QUERY 查询数,1代表1个查询,对应下面的QUESTION SECTION中的记录数

ANSWER 结果数,4代表有4项结果,对应下面ANSWER SECTION中的记录数

AUTHORITY 权威域名服务器记录数,0代表该域名有0个权威域名服务器,可供域名解析用。

ADDITIONAL 格外记录数,0代表有0项格外记录。

第2段 查询内容

要查询的域名,这里是baidu.com.,'.'代表根域名,com顶级域名,baidu二级域名,www三级域名;www.baidu.com.后面多了个点,表示根域名,根域名.root对于所有域名都是一样的,所以平时是省略的。

class,要查询信息的类别,IN代表类别为IP协议,即Internet

type,要查询的记录类型,A记录(Address),返回域名指向的IP地址,代表要查询ipv4地址。AAAA记录,代表要查询ipv6地址

第3段 查询结果

DNS服务器的给的最终查询结果,即www.baidu.com的A记录(2个IP地址)

CNAME 规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转,为服务器配置提供灵活性,用户感知不到。

此处,www.baidu.com的CNAME记录指向www.a.shifen.com。也就是说,用户查询www.baidu.com的时候,实际上返回的是www.a.shifen.com的IP地址。

这样的好处是,变更服务器IP地址的时候,只要修改www.a.shifen.com这个域名就可以了,用户的www.baidu.com域名不用修改。

所以www.baidu.com IP地址也就是182.61.200.7/182.61.200.7

其中300是TTL值(Time to live 的缩写),表示缓存时间,即600秒之内不用重新查询

第4段 a.shifen.com.的NS记录

NS(Name Server的缩写),即域名服务器记录,返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。

共5个域名服务器,向其中任一台查询就能知道www.a.shifen.com的IP地址是什么

第5段 上面NS域名服务器的IP地址

第6段 本机的DNS服务器查询信息

本机的DNS服务器是192.168.0.1,查询端口是53(DNS服务器的默认端口),以及回应长度是260字节,还有查询耗时,查询时间信息

3.dig结合其他参数查询


dig +short返回简化结果

dig +short www.baidu.com

直接返回www.baidu.com IP查询结果

dig +trace显示DNS的整个分级查询过程

dig +trace www.baidu.com

dig -x用于从IP地址反查域名

dig -x 192.30.252.153


————————————————
版权声明:本文为CSDN博主「_仰望月空」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/smile_YangYue/article/details/105074197

这篇关于dig命令查询结果解析(本文是转发)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/783089

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工