使用 DoH 查询域名 —— 以 core.tantanapp.com 为例的实战分析

前言

在现代 iOS 应用中,为了确保 DNS 查询的隐私和完整性,我们可以使用 DoH(DNS over HTTPS) 来查询域名信息。
本文将以 https://cloudflare-dns.com/dns-query?name=core.tantanapp.com&type=A 为例,通过 Postman 发起一次标准的 DoH GET 请求,完整解析请求与响应内容,并深入讲解相关概念,比如:

  • type=A 的含义
  • 响应中 TTL 的作用
  • 结果如何理解
  • 代码+注释逐行讲解
  • 插图帮助理解域名解析跳转流程

请求分析

在 Postman 中,你发送了如下请求:

GET https://cloudflare-dns.com/dns-query?name=core.tantanapp.com&type=A
Accept: application/dns-json

请求参数详解:

参数说明
name要查询的域名(这里是 core.tantanapp.com
type=A查询类型是 A 记录(即获取 IPv4 地址)
Accept请求头部,告诉服务器返回 JSON 格式的 DNS 响应

什么是 type=A

在 DNS 协议中,每个查询都有一个 “Type”,指明你想要查询什么类型的资源。

Type含义
A查询域名对应的 IPv4 地址
AAAA查询域名对应的 IPv6 地址
CNAME查询域名的别名记录
MX查询邮件服务器记录
TXT查询文本信息记录

在这里,type=A 意味着我们想要查找 core.tantanapp.comIPv4 地址,即标准的访问 IP 地址。

✅ 这通常是 Web App、移动 App 访问服务器最常见的查询类型。


响应内容分析

服务器返回了以下 JSON 数据(已格式化并加注释):

{"Status": 0,            // 0 表示查询成功"TC": false,            // TC = Truncated, 没有被截断"RD": true,             // RD = Recursion Desired, 允许递归查询"RA": true,             // RA = Recursion Available, 服务器支持递归查询"AD": false,            // AD = Authenticated Data, 响应未使用 DNSSEC 验证"CD": false,            // CD = Checking Disabled, 检查未禁用"Question": [{"name": "core.tantanapp.com","type": 1          // 1 = A记录}],"Answer": [{"name": "core.tantanapp.com","type": 5,         // 5 = CNAME(别名)"TTL": 67,         // 生存时间,秒"data": "core.cf.vip.tantanapp.com."},{"name": "core.cf.vip.tantanapp.com","type": 5,"TTL": 67,"data": "core.tantanapp.com.cdn.cloudflare.net."},{"name": "core.tantanapp.com.cdn.cloudflare.net","type": 1,"TTL": 247,"data": "104.18.11.175"},{"name": "core.tantanapp.com.cdn.cloudflare.net","type": 1,"TTL": 247,"data": "104.18.10.175"}]
}

响应字段重点解释

1. Status = 0

  • 0 表示查询成功。
  • 如果返回其他值,比如 3(Name Error),就表示域名不存在。

2. Answer 数组

DNS 查询的最终结果都在 Answer 中。

第一条记录:
  • name: core.tantanapp.com
  • type: 5 → 表示是 CNAME(别名)记录
  • data: core.cf.vip.tantanapp.com.

👉 说明 core.tantanapp.com 并没有直接绑定 IP,而是指向了 core.cf.vip.tantanapp.com

第二条记录:
  • name: core.cf.vip.tantanapp.com
  • type: 5 → 再次是 CNAME(别名)
  • data: core.tantanapp.com.cdn.cloudflare.net

👉 继续跳转,最终指向 Cloudflare 的 CDN 域名。

第三、四条记录:
  • name: core.tantanapp.com.cdn.cloudflare.net
  • type: 1 → 这才是最终的 A 记录
  • data: 104.18.11.175104.18.10.175

👉 终于拿到最终的服务器 IPv4 地址!


什么是 TTL?

每条记录里都有一个 TTL 字段,比如 67 秒 或 247 秒。

  • TTL(Time To Live) 表示这条 DNS 记录在缓存中可以保存多久(单位:秒)。
  • 过期后客户端必须重新查询 DNS,获取最新的 IP 地址。

📌 举例:
如果 TTL = 67,表示 67 秒内你都可以直接使用缓存 IP,不用再次请求 DNS 服务器。

这可以显著减少延迟和服务器压力,同时在 IP 改变时能够及时刷新。


整体解析跳转流程图

为了更直观理解,我们用一个简单流程图总结整个解析过程:

[core.tantanapp.com]↓ (CNAME)
[core.cf.vip.tantanapp.com]↓ (CNAME)
[core.tantanapp.com.cdn.cloudflare.net]↓ (A记录)
[104.18.11.175] 和 [104.18.10.175]

小结

通过本次 Postman 测试,我们清楚了解了:

项目内容
查询类型A,查询域名对应的 IPv4 地址
返回数据包含多层 CNAME 跳转,最终指向真实 IP
TTL每条记录缓存的有效时间(秒)
使用场景验证 App 的请求路径、抵御 DNS 劫持、缓存优化

掌握这种查询和解析流程,对于网络安全、性能优化和网络故障排查,都是非常实用的技能!


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

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

相关文章

Python----卷积神经网络(卷积为什么能识别图像)

一、卷积的概念 卷积是一种数学运算,通常用于信号处理和图像分析。在卷积神经网络中,卷积操作用于提取输入数据(如图像)中的特征。通过将输入数据与卷积核(滤波器)进行卷积运算,CNN能够识别图像…

linux FTP服务器搭建

FTP服务器搭建 系统环境:ubuntu 搭建方式:win系统下通过ssh连接ubuntu,搭建FTP服务 一、ssh连接 ssh -p 端口 用户名IP ssh -p 22 ubuntu192.168.1.109 密码:ubuntu123456 二、安装配置FTP服务器 1、安装 sudo apt install v…

语音合成之十韵律之美:TTS如何模拟语音的节奏和语调

韵律之美:TTS如何模拟语音的节奏和语调 1. 引言:韵律在语音合成中的重要性1.1 追求自然的TTS:超越可懂度1.2 定义韵律:语音的音乐1.3 韵律为何重要:传递意义、情感与自然度 2. TTS韵律建模的基础技术2.1 利用文本&…

基于强化学习的用于非刚性图像配准的引导式超声采集|文献速递-深度学习医疗AI最新文献

Title 题目 Guided ultrasound acquisition for nonrigid image registration usingreinforcement learning 基于强化学习的用于非刚性图像配准的引导式超声采集 01 文献速递介绍 超声成像通常用于引导手术和其他医疗程序,在这些过程中,临床医生会持…

数据库中DDL、DML、DCL的区别是什么?

数据库中DDL、DML、DCL的区别是什么? 在数据库的使用过程中,SQL(结构化查询语言)常常被用来执行不同的操作,主要分为三类:DDL(数据定义语言)、DML(数据操纵语言&#xf…

海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成

海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成 一、背景介绍 每天有2000万条聊天消息,一年下来几千万亿海量数据。为应对这种规模的数据存储和处理需求,本文将从以下几…

Vim 中替换字符或文本

在 Vim 中替换字符或文本可以使用 替换命令(substitute),其基本语法为: :[range]s/old/new/[flags]1. 基本替换 命令说明:s/foo/bar/替换当前行的第一个 foo 为 bar:s/foo/bar/g替换当前行的 所有 foo 为 bar:%s/foo/bar/g替换 …

当传统美术馆遇上数字革命:观众体验将迎来哪些颠覆性变革?

当数字科技与艺术创作深度交织,美术馆与艺术机构正经历前所未有的颠覆性浪潮。这是否宣告传统展览空间已正式跨入数字媒介主导的新纪元?投影映射与虚拟现实技术不断突破物理限制,画布与雕塑的边界在光影与代码中逐渐消融。这场革命不仅重构了…

内容/社区APP增长:用Deeplink让用户分享的内容“一键直达”

对于内容平台和互动社区APP而言,优质内容的自发传播是用户增长和活跃度提升的核心驱动力之一。用户发现一篇深度好文、一个精彩视频或是一个引人入胜的讨论帖,自然而然地想要分享给好友。然而,这个看似简单的分享动作,却往往在触达…

Uniapp:vite.config.js全局配置

目录 一、基本概述二、配置自动引入插件一、基本概述 vite.config.js 是一个可选的配置文件,如果项目的根目录中存在这个文件,那么它会被自动加载,一般用于配置 vite 的编译选项 二、配置自动引入插件 在项目命令行终端中执行如下代码 npm install unplugin-auto-import…

JavaScript 与 Java 学习笔记

一、JavaScript 简介 1. 定义 浏览器脚本语言:主要用于实现网页交互功能(鼠标点击、键盘输入响应等) 服务器端扩展:通过 Node.js 运行时环境可进行后端开发 2. 核心特点 动态性:可实时修改 DOM 结构(增…

Shell脚本-随机数实战案例

在Shell脚本编程中,生成随机数是一项非常实用的技能。无论是用于模拟、测试、游戏开发还是安全相关的应用(如生成密码),能够灵活地生成随机数都是非常有用的。本文将通过几个实际的应用案例来展示如何在Shell脚本中使用随机数解决…

面试算法高频08-动态规划-03

练习题 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每…

基于 EFISH-SBC-RK3588 的无人机多光谱/红外热成像边缘计算方案

一、硬件架构设计‌ ‌核心算力平台(EFISH-SBC-RK3588)‌ ‌处理器性能‌:搭载 8 核 ARM 架构(4Cortex-A762.4GHz 4Cortex-A551.8GHz),集成 6 TOPS NPU 与 Mali-G610 GPU,支持多光谱图像实时融…

Python小酷库系列:pyNest,把FastAPI程序写出Spring的味道

pyNest,把FastAPI程序写出Spring的风格 快速入门1、安装pyNest2、创建项目3、编写app_module.py4、编写app_service.py5、编写app_controller.py6、编写main.py7、启动程序 核心概念1、Modules2、Controllers3、Providers4、ORM Provider NestJS是风靡于Node.js圈的…

HTML 详解:从基础结构到语义标签

目录 一、HTML 是什么&#xff1f;二、HTML 的基本结构✅ 简要说明&#xff1a; 三、常见 HTML 标签讲解3.1 标题标签 <h1> ~ <h6>3.2 段落和换行3.3 超链接3.4 图像插入3.5 列表无序列表&#xff1a;有序列表&#xff1a; 3.6 表格结构 四、HTML 语义化标签详解五…

用Python做有趣的AI项目 6:AI音乐生成器(LSTM Melody Generator)

&#x1f3b5; 项目名称&#xff1a;AI音乐生成器&#xff08;LSTM Melody Generator&#xff09; &#x1f9e0; 项目简介 这个项目的目标是&#xff1a;用 AI 来自动生成简单的旋律&#xff08;MIDI格式&#xff09;&#xff0c;类似于基础的钢琴曲、背景音乐片段。 我们使…

【运维】利用任务计划程序定时重启 nssm 服务 | Windows 服务每日定时维护实践

&#x1f680; 利用任务计划程序定时重启 nssm 服务 | Windows 服务每日定时维护实践 一、前言 在 Windows 系统中&#xff0c;nssm&#xff08;Non-Sucking Service Manager&#xff09; 是一个非常好用的工具&#xff0c;可以将任意可执行程序注册为系统服务。很多运维场景…

MATLAB小试牛刀系列(1)

问题描述 某机床厂生产甲、乙两种机床&#xff0c;每台机床销售后的利润分别为 4 千元与 3 千元。生产甲机床需用 A、B 机器加工&#xff0c;加工时间分别为每台 2h 和每台 1h&#xff1b;生产乙机床需用 A、B、C 三种机器加工&#xff0c;加工时间均为每台 1h。若每天可用于加…

云原生周刊:Kubernetes v1.33 正式发布

开源项目推荐 Robusta Robusta 是一个开源的 K8s 可观测性与自动化平台&#xff0c;旨在增强 Prometheus 告警的智能化处理能力。它通过规则和 AI 技术对告警进行丰富化处理&#xff0c;自动附加相关的 Pod 日志、图表和可能的修复建议&#xff0c;支持智能分组、自动修复和高…