首页 > 其他分享 >Go 语言请求DNS解析结果

Go 语言请求DNS解析结果

时间:2023-09-05 21:01:16浏览次数:32  
标签:string err E5% E6% DNS Go net 解析

package ksyunwarning

import (
    "context"
    "fmt"
    "net"
    "time"
)

// LookupDomainNameIp 使用net包做DNS解析请求
func LookupDomainNameIp(domainString, nameServer string) (dst []string) {
    r := &net.Resolver{
        PreferGo: true,
        Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
            d := net.Dialer{
                Timeout: 3 * time.Second,
            }
            return d.DialContext(ctx, "udp", fmt.Sprintf("%s:53", nameServer))
        },
    }
    var err error
    dst, err = r.LookupHost(context.Background(), domainString)
    if err != nil {
        s.fileLogger.Error("LookupDomainNameIp LookupHost Err : %v", err)
    }
    return
}

 参考:http://www.linvon.cn/posts/golang-%E6%8C%87%E5%AE%9A-dns-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%81%9A%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/

标签:string,err,E5%,E6%,DNS,Go,net,解析
From: https://www.cnblogs.com/zhangmingda/p/17680762.html

相关文章

  • 1521A - Nastia and Nearly Good Numbers
    A.NastiaandNearlyGoodNumbershttps://codeforces.com/problemset/problem/1521/A"""思路:1.就是普通的打印,NO的情况是只有b=1的时候才会出现,其他的都是YES,如果不想再继续分情况就把a*b放在中间做y,或者做x也可,避免(b-1)=1,最后要x+y=z"""forlinein[*open(0)......
  • RunnerGo——更高效、更易用的性能测试利器
    随着互联网技术的迅速发展,性能测试已成为保障应用程序顺畅运行的关键环节。在众多性能测试工具中,RunnerGo以其独特的优势,逐渐成为了开发者和测试人员的首选。本文将详细介绍RunnerGo的特点,并对比其与JMeter的优势,让您了解RunnerGo为何成为高效、易用的性能测试利器。RunnerGo的特点......
  • pycharm打开django项目
    1、file-open,用pycharm加载django项目2、打开后,点击setting配置环境   file--setting--PythonInterpreter--配置python解析器    3、找到django项目的manage.py文件,运行manage.py文件4、点开配置,parameters:runserver           ......
  • 深入解析 MyBatis 中的 <foreach> 标签:优雅处理批量操作与动态 SQL
    在当今的Java应用程序开发中,数据库操作是一个不可或缺的部分。MyBatis作为一款颇受欢迎的持久层框架,为我们提供了一种优雅而高效的方式来管理数据库操作。在MyBatis的众多特性中,<foreach>标签无疑是一个强大的工具,它使得在SQL语句中进行动态循环迭代变得轻而易举。本文将带您深入探......
  • RunnerGo——更高效、更易用的性能测试利器
    随着互联网技术的迅速发展,性能测试已成为保障应用程序顺畅运行的关键环节。在众多性能测试工具中,RunnerGo以其独特的优势,逐渐成为了开发者和测试人员的首选。本文将详细介绍RunnerGo的特点,并对比其与JMeter的优势,让您了解RunnerGo为何成为高效、易用的性能测试利器。 RunnerGo......
  • go开发之个微机器人的开发
    简要描述:发送emoji动图表情请求URL:http://域名地址/sendEmoji请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识wcId是string接收人微信id/群idimageMd5是string取回调中xml中md5字段值imgSize是str......
  • 深入解析Java中的位运算符:<<、>>和>>>
    当谈到位运算符时,Java中的<<、>>和>>>运算符在源码中无疑是经常出现的。这些运算符在处理整数类型的数据时发挥着重要作用。它们主要用于对二进制位进行操作,是一种高效处理位级信息的方式。让我们深入探讨一下这些运算符的工作原理以及它们在Java中的应用。位运算符概述位运算符是......
  • Django admin 添加操作记录
    1:引入日志模块fromsimple_history.adminimportSimpleHistoryAdmin2:admin类继承 SimpleHistoryAdmin 3:对应model添加字段历史记录字段history=HistoricalRecords(excluded_fields=['user','create_time','update_time'])......
  • golang锁浅谈
    在Go语言中,有以下几种常用的锁类型:互斥锁(Mutex)互斥锁是最常用的一种锁机制,用于保护共享资源在并发访问时的互斥操作。常见的用法如下:varmutexsync.Mutex​//通过Lock()和Unlock()方法保护共享资源的临界区mutex.Lock()//执行对共享资源的操作mutex.Unlock()对于syn......
  • Golang匿名函数浅谈
    Go匿名函数(闭包)在Go中,匿名函数(也称为闭包)可以捕获外部变量。Go的闭包是指一个函数值(函数变量)包含了对其外部作用域中变量的引用。匿名函数可以访问和修改其外部作用域中的变量。它可以捕获外部变量的值,并在函数体中使用这些变量。下面是一个示例,展示了如何在匿名函数中捕......