【dig命令查询方法】

news2025/1/20 11:01:28

dig(Domain Information Groper)是一个用于查询DNS(域名系统)的命令行工具,它可以帮助您获取关于域名的各种信息,如IP地址、MX记录、NS记录等。下面是dig的详细使用教程。

基本语法:

dig [@server] [domain] [query-type] [options]
  • @server:可选参数,指定要查询的DNS服务器。如果不提供,默认使用系统配置的DNS服务器。
  • domain:要查询的域名。
  • query-type:可选参数,指定查询类型。例如:A、MX、NS等。如果不提供,默认查询类型为A。
  • options:可选参数,指定其他选项。例如:+short+noall等。

常用查询类型:

  • A:查询域名对应的IPv4地址。
  • AAAA:查询域名对应的IPv6地址。
  • MX:查询域名的邮件交换记录。
  • NS:查询域名的名称服务器记录。
  • CNAME:查询域名的别名记录。
  • PTR:查询IP地址对应的域名(反向查询)。
  • SOA:查询域名的起始授权记录。
  • TXT:查询域名的文本记录。

常用选项:

  • +short:简洁输出,只显示查询结果。
  • +noall:关闭所有默认输出。
  • +answer:只显示回答部分。
  • +stats:显示统计信息。
  • +multiline:以多行格式显示记录。

使用示例:

  1. 查询域名的A记录(IPv4地址):
dig example.com

dig example.com A
  1. 查询域名的AAAA记录(IPv6地址):
dig example.com AAAA
  1. 查询域名的MX记录(邮件交换记录):
dig example.com MX
  1. 查询域名的NS记录(名称服务器记录):
dig example.com NS
  1. 查询域名的CNAME记录(别名记录):
dig www.example.com CNAME
  1. 查询IP地址的PTR记录(反向查询):
dig -x 192.0.2.1
  1. 使用指定的DNS服务器查询:
dig @8.8.8.8 example.com
  1. 简洁输出查询结果:
dig example.com +short
  1. 只显示回答部分:
dig example.com +noall +answer
  1. 显示统计信息:
dig example.com +stats

字段说明:

dig命令的输出结果由以下几部分组成:

  1. 查询头:显示查询的域名、类型、类别等信息。
  2. 回答部分:包含查询结果,如IP地址、MX记录、NS记录等。
  3. 权威部分:显示权威名称服务器的信息。
  4. 附加部分:包含其他额外信息,如名称服务器的IP地址等。
  5. 统计部分:显示查询耗时、消息大小等统计信息。

请注意,dig命令可能因操作系统和版本的不同而略有差异。在使用过程中,请根据实际情况调整参数和选项。

以下是一个使用 dig 命令查询域名 example.com 的 A 记录(IPv4 地址)的示例:

$ dig example.com A

查询结果如下:

; <<>> DiG 9.16.1-Ubuntu <<>> example.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30960
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            3600    IN      A       93.184.216.34

;; Query time: 17 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Aug 30 03:57:36 UTC 2021
;; MSG SIZE  rcvd: 56

以下是各部分的说明:

  1. 查询头:
; <<>> DiG 9.16.1-Ubuntu <<>> example.com A

这部分显示了查询的基本信息,包括 dig 的版本、查询的域名和查询类型(A 记录)。

  1. 全局选项和响应头:
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30960
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

这部分显示了全局选项(+cmd),响应头信息(查询操作、状态、ID等),以及查询结果的数量(查询数、答案数、权威数、附加数)。

  1. 伪部分(EDNS):
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494

这部分显示了EDNS(扩展域名系统)的相关信息,如版本和UDP负载大小。

  1. 问题部分:
;; QUESTION SECTION:
;example.com.                   IN      A

问题部分显示了查询的域名(example.com)和查询类型(A 记录)。

  1. 回答部分:
;; ANSWER SECTION:
example.com.            3600    IN      A       93.184.216.34

回答部分显示了查询结果。在这个例子中,example.com 的 A 记录(IPv4 地址)是 93.184.216.34,TTL(生存时间)为 3600 秒。

  1. 统计部分:
;; Query time: 17 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Aug 30 03:57:36 UTC 2021
;; MSG SIZE  rcvd: 56

统计部分显示了查询的耗时(17毫秒)、使用的DNS服务器地址(127.0.0.53)、查询时间(2021年8月30日 03:57:36 UTC)以及接收到的消息大小(56字节)。

请注意,dig 命令的输出结果可能因操作系统和版本的不同而略有差异。在使用过程中,请根据实际情况调整参数和选项。

在这里插入图片描述

使用 dig 命令查询某个具有多次代理(多个CNAME记录)的域名示例:

假设有以下域名结构:

www.example.com -> sub1.example.net -> sub2.example.org -> 192.0.2.1

其中,www.example.com 是CNAME到 sub1.example.netsub1.example.net 是CNAME到 sub2.example.orgsub2.example.org 的 A 记录指向 IP 地址 192.0.2.1

现在,我们使用 dig 命令查询 www.example.com 的 A 记录:

$ dig www.example.com A

查询结果如下:

; <<>> DiG 9.16.1-Ubuntu <<>> www.example.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.example.com.               IN      A

;; ANSWER SECTION:
www.example.com.        300     IN      CNAME   sub1.example.net.
sub1.example.net.       300     IN      CNAME   sub2.example.org.
sub2.example.org.       300     IN      A       192.0.2.1

;; Query time: 35 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Aug 30 07:00:00 UTC 2021
;; MSG SIZE  rcvd: 120

以下是各部分的说明:

  1. 查询头:显示了查询的基本信息,包括 dig 的版本、查询的域名和查询类型(A 记录)。

  2. 全局选项和响应头:显示了全局选项(+cmd),响应头信息(查询操作、状态、ID等),以及查询结果的数量(查询数、答案数、权威数、附加数)。

  3. 伪部分(EDNS):显示了EDNS(扩展域名系统)的相关信息,如版本和UDP负载大小。

  4. 问题部分:问题部分显示了查询的域名(www.example.com)和查询类型(A 记录)。

  5. 回答部分:回答部分显示了查询结果。在这个例子中,www.example.com 是CNAME到 sub1.example.netsub1.example.net 是CNAME到 sub2.example.orgsub2.example.org 的 A 记录(IPv4 地址)是 192.0.2.1。TTL(生存时间)为 300 秒。

  6. 统计部分:统计部分显示了查询的耗时(35毫秒)、使用的DNS服务器地址(127.0.0.53)、查询时间(2021年8月30日 07:00:00 UTC)以及接收到的消息大小(120字节)。

请注意,dig 命令的输出结果可能因操作系统和版本的不同而略有差异。在使用过程中,请根据实际情况调整参数和选项。

以下是上面 dig 查询结果的分解和说明:

; <<>> DiG 9.16.1-Ubuntu <<>> www.example.com A
  • 查询头:显示了查询的基本信息,包括 dig 的版本(9.16.1-Ubuntu)、查询的域名(www.example.com)和查询类型(A 记录)。
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
  • 全局选项和响应头:显示了全局选项(+cmd),响应头信息(查询操作、状态、ID等),以及查询结果的数量(查询数、答案数、权威数、附加数)。
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
  • 伪部分(EDNS):显示了EDNS(扩展域名系统)的相关信息,如版本(version: 0)和UDP负载大小(udp: 65494)。
;; QUESTION SECTION:
;www.example.com.               IN      A
  • 问题部分:问题部分显示了查询的域名(www.example.com)和查询类型(A 记录)。
;; ANSWER SECTION:
www.example.com.        300     IN      CNAME   sub1.example.net.
sub1.example.net.       300     IN      CNAME   sub2.example.org.
sub2.example.org.       300     IN      A       192.0.2.1
  • 回答部分:回答部分显示了查询结果。在这个例子中:
    • www.example.com 是CNAME到 sub1.example.net,TTL(生存时间)为 300 秒。
    • sub1.example.net 是CNAME到 sub2.example.org,TTL(生存时间)为 300 秒。
    • sub2.example.org 的 A 记录(IPv4 地址)是 192.0.2.1,TTL(生存时间)为 300 秒。
;; Query time: 35 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Aug 30 07:00:00 UTC 2021
;; MSG SIZE  rcvd: 120
  • 统计部分:统计部分显示了查询的耗时(35毫秒)、使用的DNS服务器地址(127.0.0.53)、查询时间(2021年8月30日 07:00:00 UTC)以及接收到的消息大小(120字节)。

要使用 dig 命令检查某个域名是否使用了CDN或代理,您可以查找其CNAME记录。CDN或代理服务通常会将域名解析为其自己的服务器地址,而不是直接解析为源服务器的IP地址。这通常是通过CNAME记录实现的。

以下是如何使用 dig 查询CNAME记录的步骤:

  1. 打开终端。
  2. 输入以下命令并按回车键:
dig example.com CNAME

example.com 替换为您要查询的域名。

  1. 观察输出结果。如果存在CNAME记录,那么可能有CDN或代理服务。例如:
;; ANSWER SECTION:
example.com.        300     IN      CNAME   cdn.example.net.

在这个例子中,example.com 的CNAME记录指向了 cdn.example.net,这意味着可能存在CDN或代理服务。

请注意,CNAME记录并不是唯一表明存在CDN或代理的证据。有些CDN或代理服务可能使用其他方法(如A记录或ANAME记录)将域名解析为其服务器地址。要更全面地检查CDN或代理的存在,您可能需要使用其他工具或方法,如在线CDN检测工具、HTTP响应头分析等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【华为数据之道学习笔记】3-4主数据治理

主数据是参与业务事件的主体或资源&#xff0c;是具有高业务价值的、跨流程和跨系统重复使用的数据。主数据与基础数据有一定的相似性&#xff0c;都是在业务事件发生之前预先定义&#xff1b;但又与基础数据不同&#xff0c;主数据的取值不受限于预先定义的数据范围&#xff0…

http和https的区别有哪些?

HTTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;HTTP Secure&#xff09;是互联网上用于数据传输的两种协议。它们的主要区别在于HTTPS提供了加密的传输机制&#xff0c;以提高数据在传输过程中的安全性。以下是HTTP和HTTPS的一些主要区别&#xff1a; 加密&a…

[linux运维] 利用zabbix监控linux高危命令并发送告警(基于Zabbix 6)

之前写过一篇是基于zabbix 5.4的实现文章&#xff0c;但是不太详细&#xff0c;最近已经有两个小伙伴在zabbix 6上操作&#xff0c;发现触发器没有str函数&#xff0c;所以更新一下本文&#xff0c;基于zabbix 6 0x01 来看看效果 高危指令出发问题告警&#xff1a; 发出邮件告…

如何将idea中导入的文件夹中的项目识别为maven项目

问题描述 大家经常遇到导入某个文件夹的时候&#xff0c;需要将某个子文件夹识别为maven项目 解决方案

【教程】逻辑回归怎么做多分类

目录 一、逻辑回归模型介绍 1.1 逻辑回归模型简介 1.2 逻辑回归二分类模型 1.3 逻辑回归多分类模型 二、如何实现逻辑回归二分类 2.1 逻辑回归二分类例子 2.2 逻辑回归二分类实现代码 三、如何实现一个逻辑回归多分类 3.1 逻辑回归多分类问题 3.1 逻辑回归多分类的代…

RabbitMQ-学习笔记(初识 RabbitMQ)

本篇文章学习于 bilibili黑马 的视频 (狗头保命) 同步通讯 & 异步通讯 (RabbitMQ 的前置知识) 同步通讯&#xff1a;类似打电话&#xff0c;只有对方接受了你发起的请求,双方才能进行通讯, 同一时刻你只能跟一个人打视频电话。异步通讯&#xff1a;类似发信息&#xff0c…

Hadoop3.x完全分布式环境搭建Zookeeper和Hbase

先在主节点上进行安装和配置&#xff0c;随后分发到各个从节点上。 1. 安装zookeeper 1.1 解压zookeeper并添加环境变量 1&#xff09;解压zookeeper到/usr/local文件夹下 tar -zxvf /usr/local2&#xff09;进入/usr/local文件夹将apache-zookeeper-3.8.0-bin改名为zookeep…

玩转Sass:掌握数据类型!

当我们在进行前端开发的时候&#xff0c;有时候需要使用一些不同的数据类型来处理样式&#xff0c;Sass 提供的这些数据类型可以帮助我们更高效地进行样式开发&#xff0c;本篇文章将为您详细介绍 Sass 中的数据类型。 布尔类型 在 Sass 中&#xff0c;布尔数据类型可以表示逻…

如何将微服务注册到nacos服务上

首先可在maven的父工程的pom文件中添加maven的dependencyManagement标签&#xff0c;引入spring-cloud-alibaba-dependencies坐标 <properties><spring.cloud.alibaba.version>2.2.9.RELEASE</spring.cloud.alibaba.version></properties><!-- 管理…

IntelliJ IDEA 2023.3 最新变化

关键亮点 AI Assistant 预览阶段结束 全面推出 Ultimate JetBrains AI Assistant 现已全面推出&#xff0c;搭载大量新功能和改进&#xff0c;助力提高您在 JetBrains IDE 中的工作效率。 最新更新包括编辑器中增强的直接代码生成、无需复制代码即可回答项目相关查询的上下文…

Spring Boot的日志

打印日志 打印日志的步骤: • 在程序中得到日志对象. • 使用日志对象输出要打印的内容 在程序中得到日志对象 在程序中获取日志对象需要使用日志工厂LoggerFactory,代码如下: package com.example.demo;import org.slf4j.Logger; import org.slf4j.LoggerFactory;public c…

[VSCode] Java开发环境配置

文章目录 1 VSCode & Java 安装1.1 安装 VSCode1.2 安装 JDK 2 环境变量配置3 在 VSCode 中安装 Java 扩展4 运行测试 1 VSCode & Java 安装 1.1 安装 VSCode Visual Studio Code 官方下载 地址&#xff1a; https://code.visualstudio.com/详细安装步骤这里不做赘…

408——知识点大杂烩

在完成专业课的一轮复习以及历年真题的学习后&#xff0c;发现选择题甚至个别大题的考点就单纯考对概念的理解&#xff0c;会就是会&#xff0c;不会想到脑壳疼都做不出来&#xff0c;而408的知识点主打一个多杂&#xff0c;所以过来整理一下笔记。本文的知识点主要是在我做题过…

【扩散模型】ControlNet从原理到实战

ControlNet从原理到实战 ControlNet原理ControlNet应用于大型预训练扩散模型ControlNet训练过程ControlNet示例1 ControlNet与Canny Edge2. ControlNet与Depth3. ControlNet与M-LSD Lines4. ControlNet与HED Boundary ControlNet实战Canny Edge实战Open Pose 小结参考资料 Cont…

office办公技能|ppt插件使用

PPT插件获取&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1BOmPioUKeY2TdC-1V-o3Vw 提取码&#xff1a;tdji 一、ppt插件介绍 PPT插件是一种可以帮助用户在Microsoft PowerPoint软件中添加各种额外功能和效果的应用程序。使用PPT插件可以让用户更加轻松地制作出专业、…

【Flink】Flink核心概念简述

目录 一、Flink 简介二、Flink 组件栈1. API & Libraries 层2. runtime层3. 物理部署层 三、Flink 集群架构四、Flink基本编程模型五、Flink 的部署模式六、Flink 任务的执行模式五、Flink 的优点 一、Flink 简介 Apache Flink 的前身是柏林理工大学一个研究性项目&#x…

原生微信小程序将字符串生成二维码图片

weapp-qrcode.js再最后 inde.ts中的内容 // pages/qrCode/index.ts // 引入weapp-qrcode.js文件 var QRCode require(../../utils/weapp-qrcode) Page({/*** 页面的初始数据*/data: {orderNo:"",imagePath:},/*** 生命周期函数--监听页面加载*/onLoad(options:any)…

STM32CubeIDE(CUBE-MX hal库)----RTC时钟,时钟实时显示

系列文章目录 STM32CubeIDE(CUBE-MX hal库)----初尝点亮小灯 STM32CubeIDE(CUBE-MX hal库)----按键控制 STM32CubeIDE(CUBE-MX hal库)----串口通信 STM32CubeIDE(CUBE-MX hal库)----定时器 STM32CubeIDE(CUBE-MX hal库)----蓝牙模块HC-05&#xff08;详细配置&#xff09; 前言…

⭐Unity 搭建UDP服务端(02)接收客户端消息

客户端在上一篇 由于服务器逻辑写的较为简单 所以直接上代码了~ using System; using System.Net; using System.Net.Sockets; using System.Text; using UnityEngine;public class UdpServer : MonoBehaviour {public static UdpServer instance;private void Awake(){if (…