[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的管理功能. 我的这种理解虽然和网上各种文章中讲的不太一样, 但我认为基本上还是 ...
随机推荐
- .net core使用ocelot---第四篇 限流熔断
简介 .net core使用ocelot---第一篇 简单使用 .net core使用ocelot---第二篇 身份验证 .net core使用ocelot---第三篇 日志记录 前几篇文章我们陆续介 ...
- CentOS - 查看操作系统版本
cat /etc/redhat-release 参考: https://www.cnblogs.com/baby123/p/6962398.html
- C语言编译器
我们分两部分介绍C语言的编译器,分别是桌面操作系统和嵌入式操作系统. 桌面操作系统 对于当前主流桌面操作系统而言,可使用 Visual C++.GCC 以及 LLVM Clang 这三大编译器. Vi ...
- php验证码案例
<?php header('Content-type:image/jpeg'); $img=imagecreatetruecolor(120,40); // 背景颜色 $bg_color=ima ...
- CentOS7搭建git服务器
在CentOS7上搭建git服务器, 1.在Linux上安装git yum install -y git 验证是否安装成功,出现版本号即成功 git --version 2.创建版本库和用户 创建用户 ...
- Flink 原理(六)——异步I/O(asynchronous I/O)
1.前言 本文是基于Flink官网上Asynchronous I/O的介绍结合自己的理解写成的,若有不正确的欢迎大伙留言交流,谢谢! 2.Asynchronous I/O简介 将Flink用于流计 ...
- SELinux 权限设置
SELinux 权限设置 一.SELinux简介 SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GP ...
- Linux下 启动tomcat 时候同时日志命令
./startup.sh && tail -f ../logs/catalina.out
- LB_Yi
LB_Yi 简述 LB_Yi也是一种比较常见的下界函数,在时间序列的筛选中十分常见.是由Yi在Kim的基础上设计的下界函数. 公式 LB_Yi的公式如下: 从公式中可以明显的看出,其实就是把大于序列最 ...
- K3 Cloud的数据中心加载异常处理
以前一直是财务维护的K3 Cloud突然说不能登录,用的SQL 2008的数据库,运维也搞不定,找帮忙,因为是部署在阿里云上,上去看看数据库,这个K3数据库占了600多G,想看看这个表结构,就是打不 ...