在线域名DNS查询工具核心JS实现

简介: 本文详解“域名DNS查询”工具的JS实现:基于Vue构建交互,采用DoH(DNS over HTTPS)协议查询,涵盖输入规范化、多服务商/记录类型映射、应答解析与表格直出。链路清晰、错误可定位,开箱即用。

这篇文章只讲本项目里“域名DNS查询”工具的功能 JS 实现。整个工具用 Vue 组织交互状态,查询端走 DoH(DNS over HTTPS),最终把 DNS 记录整理成可直接展示的表格数据。

核心链路很简单:

输入域名 -> 规范化与校验 -> 发起查询 -> 解析应答 -> 渲染记录

在线工具网址:https://see-tool.com/dns-query
工具截图:
工具截图.png

1)输入先做规范化,避免脏数据进入查询

前端不会直接拿输入框原值查询,而是先做统一处理:转小写、去协议、去路径、去端口、去结尾点。

const normalizeDomain = (value) => {
   
  const rawValue = String(value || "")
    .trim()
    .toLowerCase();
  if (!rawValue) return "";
  let cleaned = rawValue.replace(/^https?:\/\//i, "");
  cleaned = cleaned.split("/")[0].split("?")[0].split("#")[0];
  if (cleaned.includes(":")) cleaned = cleaned.split(":")[0];
  return cleaned.replace(/\.$/, "");
};

const isValidDomain = (value) => {
   
  if (!value || !value.includes(".")) return false;
  return /^[a-z0-9.-]+$/i.test(value);
};

这一步把 https://Example.com:443/path 统一成 example.com,后续请求参数会稳定很多。

2)前端状态围绕“一次查询”组织

在 Vue 里,核心状态包括:

  • domainInput:用户输入
  • recordType:记录类型(默认 1,即 A)
  • dohServer:DoH 服务商(默认 alidns
  • isLoading:查询中状态
  • resultRecordsresultDomain:结果数据

触发查询时会先清空旧结果,再发请求;请求完成后根据返回值决定展示记录表格还是“无记录”提示。Enter 键和按钮点击共用同一套查询函数,交互逻辑保持一致。

3)服务端对域名再做一次标准化和校验

后端会再次处理输入,保证接口层数据安全、可控。这里做了两件事:

  1. 允许传入带协议或带路径的字符串,并用 URL 做兜底解析
  2. 校验域名格式,不合法直接返回错误

同时接口只接受 POST,并把错误按类型转成明确的状态码,前端可以直接按 message 展示。

4)DoH 查询的核心是“服务映射 + 类型映射”

工具内部先定义两张映射表:

  • DoH 服务商映射:alidnsdnspod360googlecloudflare
  • DNS 类型映射:1(A)28(AAAA)5(CNAME)16(TXT)2(NS)6(SOA)

查询时先检查映射是否存在,不存在直接抛出 INVALID_DOHINVALID_TYPE,避免发出无效请求。

const requestUrl = `${
     server.url}?name=${
     encodeURIComponent(name)}&type=${
     encodeURIComponent(typeKey)}`;
const response = await fetchWithTimeout(
  requestUrl,
  {
   
    method: "GET",
    headers: {
    Accept: "application/dns-json" },
  },
  10000,
);

这里统一用超时封装后的请求函数,避免上游响应异常时长时间卡住。

5)把 DoH 原始应答转换成页面可用结构

DoH 返回里真正要展示的是 Answer 数组。实现里会做一次轻量转换:保留原字段,同时补一个 typename,把数字类型改成可读字符串。

const parseAnswerList = (data) => {
   
  if (!data || !Array.isArray(data.Answer)) return [];
  return data.Answer.map((row) => ({
   
    ...row,
    typename: DNS_TYPES[String(row.type)] || String(row.type),
  }));
};

这样前端渲染时可以直接显示:主机名、类型、记录值、TTL,不需要再做二次转换。

6)错误处理按“可定位”设计

这套实现把错误分成几类:

  • 参数错误:如类型非法、DoH 非法
  • 上游响应错误:如返回体不是合法 JSON
  • 请求失败:上游不可达或超时

接口会返回统一结构,前端只需要读取 statusmessage 就能完成提示。

7)这套功能 JS 的关键点

这个工具的核心不在“把 DNS 查出来”本身,而在于把查询链路标准化:输入规范化、参数校验、DoH 请求、应答转换、结果直出。对用户来说是一次点击;对实现来说是一条清晰的数据处理流水线。

相关文章
|
12天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
18986 104
|
4天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
3826 5
|
6天前
|
人工智能 安全 API
OpenClaw“小龙虾”进阶保姆级攻略!阿里云/本地部署+百炼API配置+4种Skills安装方法
很多用户成功部署OpenClaw(昵称“小龙虾”)后,都会陷入“看似能用却不好用”的困境——默认状态下的OpenClaw更像一个聊天机器人,缺乏连接外部工具、执行实际任务的能力。而Skills(技能插件)作为OpenClaw的“动手能力核心”,正是打破这一局限的关键:装对Skills,它能帮你自动化处理流程、检索全网资源、管理平台账号,真正变身“能做事的AI管家”。
4792 7
|
8天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
7485 5
|
7天前
|
人工智能 API 网络安全
Mac mini × OpenClaw 保姆级配置教程(附阿里云/本地部署OpenClaw配置百炼API图文指南)
Mac mini凭借小巧机身、低功耗和稳定性能,成为OpenClaw(原Clawdbot)本地部署的首选设备——既能作为家用AI节点实现7×24小时运行,又能通过本地存储保障数据隐私,搭配阿里云部署方案,可灵活满足“长期值守”与“隐私优先”的双重需求。对新手而言,无需复杂命令行操作,无需专业技术储备,按本文步骤复制粘贴代码,即可完成OpenClaw的全流程配置,同时接入阿里云百炼API,解锁更强的AI任务执行能力。
6076 1
|
16天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
18563 116
|
10天前
|
人工智能 JSON API
保姆级教程:OpenClaw阿里云及本地部署+模型切换流程+GLM5.0/Seedance2.0/MiniMax M2.5接入指南
2026年,GLM5.0、Seedance2.0、MiniMax M2.5等旗舰大模型相继发布,凭借出色的性能与极具竞争力的成本优势,成为AI工具的热门选择。OpenClaw作为灵活的AI Agent平台,支持无缝接入这些主流模型,通过简单配置即可实现“永久切换、快速切换、主备切换”三种模式,让不同场景下的任务执行更高效、更稳定。
6575 4

热门文章

最新文章