手写DNS服务器测速程序(工具分享)(1),2024年最新武汉软通动力Linux运维面试

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

  • 每个DNS服务器测试多次测试取速度最快的结果
  • 支持默认DNS测试测试或者文件自定义DNS服务器测试
  • 结果按照DNS速度排序。

下载地址

Github下载

使用方法

>> race-dns-speed.exe 
Enter a domain: www.baidu.com
DNS resolution for www.baidu.com at 114.114.114.114 took 364.41 ms
DNS resolution for www.baidu.com at 208.67.220.220 took 395.63 ms
DNS resolution for www.baidu.com at 101.226.4.6 took 470.03 ms
DNS resolution for www.baidu.com at 223.6.6.6 took 470.03 ms
DNS resolution for www.baidu.com at 180.76.76.76 took 470.54 ms
DNS resolution for www.baidu.com at 119.29.29.29 took 473.33 ms
DNS resolution for www.baidu.com at 208.67.222.222 took 475.09 ms
DNS resolution for www.baidu.com at 223.5.5.5 took 477.62 ms
DNS resolution for www.baidu.com at 101.101.101.101 took 478.43 ms
DNS resolution for www.baidu.com at 8.8.8.8 took 480.65 ms
DNS resolution for www.baidu.com at 112.124.47.27 took 481.81 ms
DNS resolution for www.baidu.com at 114.215.126.16 took 487.02 ms
DNS resolution for www.baidu.com at 8.8.4.4 took 487.75 ms
DNS resolution for www.baidu.com at 123.125.81.6 took 490.54 ms
Enter a domain: www.sohu.com
DNS resolution for www.sohu.com at 223.6.6.6 took 362.69 ms
DNS resolution for www.sohu.com at 223.5.5.5 took 364.30 ms
DNS resolution for www.sohu.com at 8.8.4.4 took 367.48 ms
DNS resolution for www.sohu.com at 208.67.222.222 took 370.11 ms
DNS resolution for www.sohu.com at 208.67.220.220 took 370.11 ms
DNS resolution for www.sohu.com at 101.101.101.101 took 371.72 ms
DNS resolution for www.sohu.com at 119.29.29.29 took 372.36 ms
DNS resolution for www.sohu.com at 123.125.81.6 took 459.76 ms
DNS resolution for www.sohu.com at 114.215.126.16 took 461.91 ms
DNS resolution for www.sohu.com at 112.124.47.27 took 462.23 ms
DNS resolution for www.sohu.com at 101.226.4.6 took 462.46 ms
DNS resolution for www.sohu.com at 180.76.76.76 took 469.42 ms
DNS resolution for www.sohu.com at 114.114.114.114 took 469.48 ms
DNS resolution for www.sohu.com at 8.8.8.8 took 490.74 ms
Enter a domain: www.google.com 
DNS resolution for www.google.com at 223.6.6.6 took 0.50 ms
DNS resolution for www.google.com at 180.76.76.76 took 0.50 ms
DNS resolution for www.google.com at 101.226.4.6 took 0.50 ms
DNS resolution for www.google.com at 123.125.81.6 took 0.50 ms
...
...
...

Golang代码

package main

import (
	"bufio"
	"context"
	"fmt"
	"net"
	"os"
	"sort"
	"time"
)

var dnsServers = []string{
	"114.114.114.114",
	"119.29.29.29",
	"223.5.5.5",
	"223.6.6.6",
	"180.76.76.76",
	"101.226.4.6",
	"123.125.81.6",
	"101.226.4.6",
	"101.226.4.6",
	"112.124.47.27",
	"114.215.126.16",
	"8.8.8.8",
	"8.8.4.4",
	"208.67.222.222",
	"208.67.220.220",
	"101.101.101.101",
}

type DnsResult struct {
	Server string
	Time   float64
}

func resolve(domain string, dnsServer string, results chan<- DnsResult) {
	defer func() {
		if r := recover(); r != nil {
			fmt.Println("Recovered from panic in resolve:", r)
		}
	}()

	r := net.Resolver{
		PreferGo: true,
		Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
			d := net.Dialer{
				Timeout: time.Millisecond \* 5000,
			}
			return d.DialContext(ctx, network, dnsServer+":53")
		},
	}

	minTime := float64(1<<63 - 1) // max float64 value
	for i := 0; i < 10; i++ {
		start := time.Now()
		\_, err := r.LookupHost(context.Background(), domain)
		elapsed := time.Since(start)

		if err != nil {
			fmt.Printf("DNS resolution for %s at %s failed: %v\n", domain, dnsServer, err)
			return
		} else {
			ms := elapsed.Seconds() \* 1000
			if ms < minTime {
				minTime = ms
			}
		}
	}

	results <- DnsResult{Server: dnsServer, Time: minTime}
}

func main() {
	if \_, err := os.Stat("dns-servers.txt"); err == nil {
		file, err := os.Open("dns-servers.txt")
		if err != nil {
			fmt.Println("Error opening dns-servers.txt:", err)
![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)



最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/32f1ef497c4ba7c9ce8633783652ddb0.jpeg)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-nn1iNfvA-1713603046364)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值