如何读取DNS?

HCRM技术_小炮 DNS 2026-05-08 45 0

读取 DNS(域名系统)通常有两种含义:一种是查询某个域名的解析结果(比如查看baidu.com 对应的 IP 地址),另一种是查看本机配置的 DNS 服务器地址,下面分别介绍常用方法:

一、查询域名的 DNS 解析记录

1. 使用nslookup(Windows / macOS / Linux 通用)

查看 A 记录(IPv4 地址)

  nslookup example.com

查看指定类型的记录(如 MX、TXT、NS)

  nslookup -type=mx example.com
  nslookup -type=txt example.com
  nslookup -type=ns example.com

指定 DNS 服务器查询(例如使用 Google 的 8.8.8.8)

  nslookup example.com 8.8.8.8

2. 使用dig(Linux / macOS,Windows 可通过 WSL 或安装 BIND 工具)

默认查询 A 记录
dig baidu.com
查询 MX 记录
dig baidu.com MX
使用指定 DNS 服务器(114.114.114.114)
dig @114.114.114.114 baidu.com
显示简短结果
dig +short baidu.com

3. 使用host(Linux / macOS,部分系统自带)

host baidu.com
host -a baidu.com   # 显示所有记录
host -t mx baidu.com

在线工具

- 浏览器访问 [DNSPod](https://tools.dnspod.cn/dns/)、[Google Admin Toolbox](https://toolbox.googleapps.com/apps/dig/) 等,输入域名即可查询。

二、查看本机当前使用的 DNS 服务器地址

Windows

命令提示符

  ipconfig /all | findstr "DNS Servers"

  nslookup localhost   # 第一行会显示默认 DNS 服务器

图形界面

设置 → 网络和 Internet → 状态 → 属性(双击连接) → 找到“IPv4 DNS 服务器”。

macOS

查看当前网络服务的 DNS
scutil --dns | grep 'nameserver\['
或使用 networksetup
networksetup -getdnsservers Wi-Fi   # 把 Wi-Fi 换成实际服务名

Linux

通过systemd-resolved(常见于 Ubuntu/Debian)

  systemd-resolve --status | grep "DNS Servers"

  resolvectl status | grep "DNS Servers"

查看/etc/resolv.conf

  cat /etc/resolv.conf   # 显示 nameserver 行

(注意:此文件可能被 NetworkManager 或 systemd-resolved 动态管理)

使用nmcli(NetworkManager)

  nmcli device show <interface> | grep DNS

三、编程方式读取 DNS(Python 示例)

获取本机 DNS 服务器(跨平台)

import socket
dns_servers = socket.getaddrinfo("localhost", 53)  # 不一定总能获取

更可靠的方法需要依赖第三方库,例如dnspython 或读取系统配置文件。

2. 查询域名解析(使用dnspython

先安装:pip install dnspython

import dns.resolver
查询 A 记录
answers = dns.resolver.resolve('example.com', 'A')
for rdata in answers:
    print(rdata.address)
查询 MX 记录
answers = dns.resolver.resolve('example.com', 'MX')
for rdata in answers:
    print(rdata.preference, rdata.exchange)
需求场景 推荐命令/工具
快速查域名 IPnslookupdig
详细 DNS 记录分析dig(最强大)
看本机正在用的 DNS 服务器ipconfig /all(Win) /scutil --dns(Mac)
跨平台编程查询 Python +dnspython

如果遇到查询结果异常(比如和预期不一致),可以尝试多次查询或使用不同的 DNS 服务器(如8.8.8.8114.114.114.114)对比,你具体是想查域名的 IP,还是想改本机 DNS?如果还有进一步需求,可以告诉我,我会帮你细化解答。

文章摘自:https://idc.huochengrm.cn/dns/25444.html

评论