golang 获取域名 ip dns 信息

1 Go语言查找DNS A记录

A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录. 用户可以将该域名下的网站服务器指向到自己的web server上. 同时也可以设置您域名的二级域名.

使用 Go 语言的标准库 net.LookupIP() 接受域名的字符串参数,返回 net.IP的切片. 这个 net.IP 对象包含IPv4地址和IPv6地址.

package mainimport ("fmt""net")func main() {iprecords, _ := net.LookupIP("mojotv.cn")for _, ip := range iprecords {fmt.Println(ip)}}

上面代码返回的facebook域名的IPv4和IPv6地址:


C:\golang\mojotv.cn>go run golang_dns_example.go2a03:2880:f12f:83:face:b00c:0:25de31.13.79.35
2 Go语言查找DNS CNAME记录

CNAME(缩写canonical name)记录,即:别名记录.这种记录允许您将多个名字映射到同一台计算机. 通常用于同时提供WWW和MAIL服务的计算机.例如,有一台计算机名为“host.mydomain.com”(A记录). 它同时提供WWW和MAIL服务,为了便于用户访问服务.可以为该计算机设置两个别名(CNAME):WWW和MAIL.

使用Go语言标准库net.LookupCNAME()根据域名字符串查询DNS CNAME 记录值.

package mainimport ("fmt""net")func main() {cname, _ := net.LookupCNAME("m.facebook.com")fmt.Println(cname)}

返回m.facebook.com 的 DNS CNAME 记录值出输结果如下:

C:\golang\mojotv.cn>go run dns_cname_example.gostar-mini.c10r.facebook.com.
3 Go语言查找DNS PTR记录

PTR记录,是电子邮件系统中的邮件交换记录的一种;另一种邮件交换记录是A记录(在IPv4协议中)或AAAA记录(在IPv6协议中).PTR记录常被用于反向地址解析. 根据一个IP值,查找映射的域名值,不一定没有ip地址都回生效,DNS的IP地址可以查到.

DNS PTR用途

  • PTR记录被用于电子邮件发送过程中的反向地址解析.
  • 当正向域名解析完成后,还应当向您的线路接入商(ISP)申请做反向地址解析,以减少被国外机构退信的可能性.

使用Go语言标准库net.LookupAddr()函数对地址执行反向查找,并返回映射到给定地址的名称列表.


package mainimport ("fmt""net")func main() {ptr, err := net.LookupAddr("114.114.114.114")if err != nil {fmt.Println(err)}for _, ptrvalue := range ptr {fmt.Println(ptrvalue)}}

查找dns的返回值如下


C:\golang\dns>go run example3.gopublic1.114dns.com.
4 Go语言查找DNS NS记录

NS记录此记录指定负责此DNS区域的权威名称服务器. A记录和NS记录的区别是,A记录直接给出目的IP, NS记录将DNS解析任务交给特定的服务器, NS记录中记录的IP即为该特定服务器的IP地址.

使用Go语言标准库net.LookupNS()函数对域名执行反向查找,并返回负责此域名DNS-NS记录切片.

package mainimport ("fmt""net")func main() {nameserver, _ := net.LookupNS("baidu.com")for _, ns := range nameserver {fmt.Println(ns)}}

结果如下

C:\golang\mojotv.cn>go run dsn_ns_example.go&{ns3.baidu.com.}&{ns4.baidu.com.}&{ns7.baidu.com.}&{dns.baidu.com.}&{ns2.baidu.com.}
5 Go语言查找DNS MX记录

邮件交换记录 (MX record)是域名系统(DNS)中的一种资源记录类型,用于指定负责处理发往收件人域名的邮件服务器. MX记录允许设置一个优先级,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器.简单邮件传输协议(SMTP)会根据MX记录的值来决定邮件的路由过程.

使用Go语言标准库 net.LookupMX 函数将域名作为字符串,并返回按首选项排序的MX 结构体的切片. MX结构由主机作为string组成,Pref是uint16.

package mainimport ("fmt""net")func main() {mxrecords, _ := net.LookupMX("baidu.com")for _, mx := range mxrecords {fmt.Println(mx.Host, mx.Pref)}}

域名(baidu.com)的输出列表MX记录

C:\golang\mojotv.cn>go run golang_dns_mx_example.gomx.maillb.baidu.com. 10mx.n.shifen.com. 15mx1.baidu.com. 20jpmx.baidu.com. 20mx50.baidu.com. 20
​​​​​​6 Go语言查找DNS SRV记录

SRV记录(英語:Service Record,中文又名服务定位记录)是域名系统中用于指定服务器提供服务的位置(如主机名和端口)数据.此数据于RFC 2782中定义,类型代码为33. 部分协议,如会话发起协议(SIP)及可扩展消息与存在协议(XMPP)通常需要服务记录的支持.

Go语言标准库LookupSRV函数尝试指定服务的SRV查询,协议和域名的SRV查询. 第二个参数是“tcp”或“udp”. 返回的记录按优先级排序,并按优先级在权重随机分配.

package mainimport ("fmt""net")func main() {cname, srvs, err := net.LookupSRV("xmpp-server", "tcp", "golang.org")if err != nil {panic(err)}fmt.Printf("\ncname: %s \n\n", cname)for _, srv := range srvs {fmt.Printf("%v:%v:%d:%d\n", srv.Target, srv.Port, srv.Priority, srv.Weight)}}

下面的输出演示了CNAME返回,后跟SRV记录目标,端口,优先级和由冒号分隔的权重.

C:\golang\mojotv.cn>go run golang_dns_srv_example.gocname: _xmpp-server._tcp.golang.org.

​​​​7 Go语言查找DNS TXT记录

TXT记录用来保存域名的附加文本信息,TXT记录的内容按照一定的格式编写,最常用的是SPF格式,SPF用于登记某个域名拥有的用来外发邮件的所有ip地址. MX记录的作用是给寄信者指明某个域名的邮件服务器有哪些,SPF格式的TXT记录的作用跟MX记录相反,它向收信者表明,哪些邮件服务器是经过某个域名认可发送邮件的. SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件.按照SPF格式在DNS中增加一条TXT类型的记录,将提高该域名的信誉度,同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件.

Go语言标准库 net.LookupTXT 函数将域名(baidu.com)作为字符串,并返回DNS TXT记录列表作为字符串片段.

package mainimport ("fmt""net")func main() {txtrecords, _ := net.LookupTXT("baidu.com")for _, txt := range txtrecords {fmt.Println(txt)}}

baidu.com的txt值如下

C:\golang\mojotv>go run golang_dns_txt.gov=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com a mx ptr -allgoogle-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM

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

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

相关文章

【零基础学习CAPL】——CAN报文的发送(LiveCounter——生命信号)

🙋‍♂️【零基础学习CAPL】系列💁‍♂️点击跳转 文章目录 1.概述2.面板创建3.系统变量创建4.CAPL实现5.效果5.1.0~15循环发送5.2.固定值发送6.全量脚本1.概述 本章主要介绍带有生命信号LiveCounter的报文发送脚本 一般报文可使用CANoe的IG模块直接发送,但存在循环冗余…

代码随想录算法训练营第三十六天|435.无重叠区间、763.划分字母区间、56.合并区间

435.无重叠区间 思路:找到删除几个区间,让题目给出的区间没有重叠部分,那么首先我们先进行排序(按照左边界排序),那么下一个区间的左边界小于上一个区间的右边界,那么这两个区间一定有重叠的部分…

燃气热水器水箱的气密性测试密封方案介绍—格雷希尔快速接头

家用燃气热水器的气密性检测是保障其安全性的重要环节之一,如热水器的水箱,它的周围缠绕着一圈铜管,这圈铜管和水箱之间有数量不等的焊接点,为了保证热水器的正常运行,必须要对它们进行气密性测试。   燃气热水器水箱…

文件且目录损坏无法读取怎么办?

文件及目录损坏无法读取是计算机使用过程中的常见故障,这可能是由于多种原因导致的,例如硬件故障、文件系统错误、病毒感染或不当操作等。本文将对这一问题进行深入分析,探讨其根本原因,并提供相应的解决方法,包括数据…

Gemini API模型详细信息一览表

Gemini API模型详细信息一览表,api模型:gemini-pro\gemini-pro-vision\embedding-001\aqa VariationAttributeDescriptionGemini ProModel last updatedFebruary 2024Model codemodels/gemini-proModel capabilities Input: textOutput: textGenerates …

ubuntu linux kernel内核操作

替换linux内核 实验步骤(在root权限下进行) 1.内核编译前的准备工作 2.下载内核 4. 编译新内核 5. 内核安装 6. 安装模块 7. 生成initrd.img文件 8. 切换到/boot/grub/目录下,自动查找新内核,并添加至grub引导 9. 重启Ubantu,在previous version中选择启动新编译的内核 …

Collectors.toMap使用记录

最近看到一行比较有趣的代码,他的功能就是将List转换为Map。我觉得挺有意思的,先前没遇到过,于是打算写篇文章记录一下。 public enum CodeEnum {USER("user"),AGE("age"),INTEREST("interest"),;private Str…

揭秘:一行代码搞定.Net API高并发的烦恼

高并发下的接口请求重复提交问题 在.Net开发中,我们经常遇到用户疯狂点击同一按钮,或者服务响应慢时重复发送请求,导致数据重复添加或混乱。这不仅浪费资源,更会得到错误的业务结果。如何高效解决这一普遍问题呢? 常规…

vscode 命令无法执行

以管理员启动powershell 输入set-ExecutionPolicy RemoteSigned yarn : 无法加载文件 D:\node\node_global\yarn.ps1。未对文件 D:\node\node_global\yarn.ps1 进行数字签名。无法在当前系统上运行该脚本。有关运行脚本和设置执行策略的详细信息,请参阅 https:/go…

2024年华为OD机试真题-计算三叉搜索树的高度-Java-OD统一考试(C卷)

题目描述: 定义构造三叉搜索树规则如下: 每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。 查找的规则是: 1. 如果数小于节点的数减去500,则将数插入节点的左子树 2. 如果数大于节点的数加上500,则将…

影响效果图渲染的因素有哪些?渲染100邀请码1a12

效果图对很多行业是刚需,特别是视觉行业,一张好的效果图非常重要,影响效果图渲染的因素有很多,它们是哪些呢?一起来看看吧。 1、渲染引擎 渲染引擎对效果图的渲染至关重要,目前市面上有很多渲染引擎&#x…

阅读笔记(SOFT COMPUTING 2018)Seam elimination based on Curvelet for image stitching

参考文献: Wang Z, Yang Z. Seam elimination based on Curvelet for image stitching[J]. Soft Computing, 2018: 1-16. 注:SOFT COMPUTING 大类学科小类学科Top期刊综述期刊工程技术 3区 COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE 计算机&#xf…

6.1.0 MPLS LDP动态分配

手动写静态MPLS的转发路径,不仅不方便管理,同时配置量也非常多,每台设备都需要去做配置。为了方便管理且去除繁琐的配置,就需要使用到LDP动态标签分发协议了。 标签分发协议LDP(Label Distribution Protocol&#xff…

供应STM32F103C8T6原装芯片

长期供应各品牌芯片: STM32F103C8T6 AMS1117-3V3 STM32F407VGT6 BSC039N06NS ICE2QR2280G-1 IPA65R310CFD IPP60R120P7 BSC010N04LS BSC011N03LS BSC027N04LS BSC042NE7NS3 BSC050N10NS5 BSC0911ND BSC109N10NS3 BSC320N20NS3 BSZ014NE2…

迈向AI时代:掌握Python编程与ChatGPT的强强联手

文章目录 一、ChatGPT与Python编程的结合二、利用ChatGPT学习Python编程的优势三、如何使用ChatGPT学习Python编程四、学习技巧与建议《码上行动:用ChatGPT学会Python编程》特色内容简介作者简介目录获取方式 随着人工智能技术的飞速发展,编程已经成为了…

【漏洞复现-通达OA】通达OA report_bi存在前台SQL注入漏洞

一、漏洞简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。通达OA为各行业不同规模的众多用户提供信息化管理能力,包括流程审批、行政办公、日常事务、数据统计…

代码随想录算法训练营day24 | 77. 组合

今天开始回溯 回溯的模板。for循环是横向遍历,backtracking为纵向遍历。 回溯法解决的问题都可以抽象为树形结构,树的宽度为集合的大小,树的深度为递归的深度 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择&#x…

Unity3D Shader 素描风格渲染管线实现详解

前言 在游戏开发中,渲染效果是非常重要的一部分,它可以直接影响游戏的视觉效果和玩家的体验。而素描风格的渲染效果是一种非常独特和有趣的风格,可以为游戏增添一种艺术氛围。在Unity3D中,可以通过编写Shader来实现素描风格的渲染…

java面试

一、java基础篇 1.接口和抽象类的区别 相似点: (1)接口和抽象类都不能被实例化 (2)实现接口或继承抽象类的普通子类都必须实现这些抽象方法 不同点: (1)抽象类可以包含普通方法…

供应STM32F407VGT6芯片

长期供应各品牌芯片: STM32F407VGT6 ADM809LAKSZ-REEL7 MC78M05BDTRKG TOP271EG FDD16AN08A0 LM317MDT-TR ES1C DS90UB947TRGCRQ1 KIA75S393F-RTK MC96F8316SM FNB80560T3 S29AL008J55BFIR22 SS8050D-BU STM32F405RGT6TR IRFS3607TRLPBF MC79M05CDTR…