You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Ruby实现nslookup查询域名NS记录的功能?

使用Ruby获取域名的NS记录列表

要实现和nslookup -type=NS相同的功能,直接用Ruby标准库中的resolv模块即可,无需额外安装依赖包。

基础实现(使用系统默认DNS服务器)

require 'resolv'

# 定义要查询的域名
target_domain = 'stackoverflow.com'

# 查询NS记录
ns_records = Resolv::DNS.open do |dns|
  dns.getresources(target_domain, Resolv::DNS::Resource::IN::NS)
end

# 格式化输出结果
ns_records.each do |record|
  puts "#{target_domain}   nameserver = #{record.name}"
end

执行这段代码后,会输出和示例中nslookup类似的结果:

stackoverflow.com   nameserver = sureena.ns.cloudflare.com.
stackoverflow.com   nameserver = damian.ns.cloudflare.com.

指定自定义DNS服务器的实现

如果需要像nslookup那样指定特定的DNS服务器查询,比如使用谷歌的8.8.8.8,可以修改代码如下:

require 'resolv'

target_domain = 'stackoverflow.com'
# 指定要使用的DNS服务器地址
custom_dns = '8.8.8.8'

ns_records = Resolv::DNS.new(nameserver: [custom_dns]) do |dns|
  dns.getresources(target_domain, Resolv::DNS::Resource::IN::NS)
end

ns_records.each do |record|
  puts "#{target_domain}   nameserver = #{record.name}"
end

内容的提问来源于stack exchange,提问作者jibai31

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:34:55