[golang]Go net.lookup包
DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。 域名系统(通常被称为“DNS”)是一个网络系统,允许我们把对人类友好的名称解析为唯一的地址。 Internet 上的所有计算机,从您的智能手机或笔记本电脑到可提供大量零售网站内容的服务器,均通过使用编号寻找另一方并相互通信。 这些编号称为 IP 地址。当您打开 Web 浏览器并前往一个网站时,您不必记住和输入长编号。 而是输入域名 (入 example.com),然后在正确的IP地址获取数据。 你可以把它想象成一本巨大的电话本。下面图片将展示DNS的工作原理.
Go语言中
package main import (
"fmt"
"net"
) func main() {
//查找DNS A记录
iprecords, _:=net.LookupIP("landv.cn")
for _,ip:=range iprecords{
fmt.Println(ip)
}
//查找DNS CNAME记录
canme, _:=net.LookupCNAME("www.baidu.com")
fmt.Println(canme)
//查找DNS PTR记录
ptr,e :=net.LookupAddr("8.8.8.8")
if e != nil {
fmt.Println(e)
}
for _, ptrval:=range ptr{
fmt.Println(ptrval)
}
//查找DNS NS记录
nameserver,_:=net.LookupNS("baidu.com")
for _,ns :=range nameserver{
fmt.Println("ns记录",ns)
}
//查找DNS MX记录
mxrecods,_ :=net.LookupMX("google.com")
for _,mx :=range mxrecods{
fmt.Println("mx:",mx)
}
//查找DNS TXT记录
txtrecords, _ := net.LookupTXT("baidu.com") for _, txt := range txtrecords {
fmt.Println("txt:",txt)
}
}
运行结果
185.199.111.153
185.199.108.153
185.199.109.153
185.199.110.153
www.a.shifen.com.
dns.google.
ns记录 &{dns.baidu.com.}
ns记录 &{ns7.baidu.com.}
ns记录 &{ns2.baidu.com.}
ns记录 &{ns3.baidu.com.}
ns记录 &{ns4.baidu.com.}
mx: &{aspmx.l.google.com. }
mx: &{alt1.aspmx.l.google.com. }
mx: &{alt2.aspmx.l.google.com. }
mx: &{alt3.aspmx.l.google.com. }
mx: &{alt4.aspmx.l.google.com. }
txt: v=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com a mx ptr -all
txt: google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM
[golang]Go net.lookup包的更多相关文章
- golang格式化输出-fmt包用法详解
golang格式化输出-fmt包用法详解 注意:我在这里给出golang查询关于包的使用的地址:https://godoc.org 声明: 此片文章并非原创,大多数内容都是来自:https:// ...
- Go 的 golang.org/x/ 系列包和标准库包有什么区别?
在开发过程中可能会遇到这样的情况,有一些包是引入自不同地方的,比如: golang.org/x/net/html 和 net/html, golang.org/x/crypto 和 crypto. 那 ...
- golang之pkg(包)
一.概述 Golang拥有超过100个标准包(可用go list std |wc -l查看) 任何包系统设计的目的都是简化大型程序的设计和维护工作,通过将一组相关的特性放进一个独立的模块以便于理解和更 ...
- Golang学习笔记:包制作
golang的包跟java as js之类的大不一样,一定要存在GOPATH里面,GOPATH是专门用于存放golang第三方的库,里面有两个文件夹, src:源代码目录 pkg:编译后的第三方包,这 ...
- golang中container/list包源码分析
golang源码包中container/list实际上是一个双向链表 提供链表的一些基本操作,下面就结合定义和接口进行下说明 1. 定义 // Element is an element of a l ...
- golang中container/heap包源码分析
学习golang难免需要分析源码包中一些实现,下面就来说说container/heap包的源码 heap的实现使用到了小根堆,下面先对堆做个简单说明 1. 堆概念 堆是一种经过排序的完全二叉树,其中任 ...
- golang中的rpc包用法
RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样. 我所在公司的项目是采用基于Restful的微服务架构,随着微服 ...
- golang中的reflect包用法
最近在写一个自动生成api文档的功能,用到了reflect包来给结构体赋值,给空数组新增一个元素,这样只要定义一个input结构体和一个output的结构体,并填写一些相关tag信息,就能使用程序来生 ...
- golang中的context包
标准库的context包 从设计角度上来讲, golang的context包提供了一种父routine对子routine的管理功能. 我的这种理解虽然和网上各种文章中讲的不太一样, 但我认为基本上还是 ...
随机推荐
- Python之TensorFlow的数据的读取与存储-2
一.我们都知道Python由于GIL的原因导致多线程并不是真正意义上的多线程.但是TensorFlow在做多线程使用的时候是吧GIL锁放开了的.所以TensorFlow是真正意义上的多线程.这里我们主 ...
- 【洛谷 P2408】 不同子串个数(后缀自动机)
题目链接 裸体就是身体. 建出\(SAM\),\(DAG\)上跑\(DP\),\(f[u]=1+\sum_{(u,v)\in DAG}f[v]\) 答案为\(f[1]-1\)(因为根节点没有字符) # ...
- rabbitMq 学习笔记(二) 备份交换器,过期时间,死信队列,死信队列
备份交换器 备份交换器,英文名称为 Altemate Exchange,简称庙,或者更直白地称之为"备胎交换器". 生产者在发送消息的时候如果不设置 mandatory 参数, 那 ...
- 【转载】C#中List集合First和FirstOrDefault方法有何不同
在C#的List集合中查找一个符合条件的元素,一般我们会用First方法或者FirstOrDefault方法来返回第一个符合条件的对象,First方法和FirstOrDefault的调用都是使用Lam ...
- 5G能带来什么改变-从鸿蒙OS说起
背景 从5G投票事件开始,开始关注5G.许多文章都说到5G的特点有速度快.时延低,其中,时延低是最重要的特点.然而,时延低能给社会带来什么改变呢? 2G是短信的时代,3G促成了语音视频,4G促成了短视 ...
- svg实现圆环进度条
开源实现:https://github.com/lugolabs/circles 自行实现:圆环与svg画布间剩的空间太多. <!DOCTYPE html> <html> &l ...
- SAP官网发布的react教程
大家学习React的时候,用的是什么教程呢?Jerry当时用的阮一峰博客上的入门教程,因为React使用的JSX语法并不是所有的浏览器都支持,所以还得使用browser.js在浏览器端将JSX转换成J ...
- WPF如何设置启动窗口
在做系统时,我们想在启动时显示自己想显示的界面,和Winform不同的是它有两种方法 1.在App.xaml中 <Application x:Class="WpfApp1.App&qu ...
- Spring+WebSocket+SockJS实现实时聊天
设计初衷是通过websocket实现网页实时通讯聊天. 工程环境:tomcat8+jdk1.7+maven+eclipse 设计思路:客户端登录网页建立socket连接,后台记录用户连接信息并做标识: ...
- dict排序
根据dict值排序 c = {1:10,2:9,3:8} c = sorted(c.items(), key=lambda d: d[1], reverse=1) reverse=1 从大到小排列 起 ...