下面是一个简单的 Golang DNS 中转代码,将所有请求转发到 119.29.29.29:

package main

import (
	"log"
	"net"
)

func main() {
	// 监听本地 DNS 请求
	udpAddr, err := net.ResolveUDPAddr("udp", ":53")
	if err != nil {
		log.Fatal(err)
	}

	udpConn, err := net.ListenUDP("udp", udpAddr)
	if err != nil {
		log.Fatal(err)
	}
	defer udpConn.Close()

	log.Println("DNS server started")

	// 处理 DNS 请求
	for {
		buf := make([]byte, 512)
		n, remoteAddr, err := udpConn.ReadFromUDP(buf)
		if err != nil {
			log.Println("Error reading UDP message:", err)
			continue
		}

		log.Printf("Received DNS request from %s, forwarding to 119.29.29.29", remoteAddr)

		// 转发请求到 119.29.29.29
		dnsAddr, err := net.ResolveUDPAddr("udp", "119.29.29.29:53")
		if err != nil {
			log.Println("Error resolving DNS server address:", err)
			continue
		}

		_, err = udpConn.WriteToUDP(buf[:n], dnsAddr)
		if err != nil {
			log.Println("Error forwarding DNS request:", err)
			continue
		}
	}
}

这个代码会监听本地的 DNS 请求,当收到请求时,会将请求转发到 119.29.29.29。你可以在本地运行这个代码,并将本地 DNS 服务器设置为它的 IP 地址,然后尝试访问 www.baidu.com,就会将请求转发到 119.29.29.29

golang 写一个dns中转代码 中转wwwbaiducom 到119292929

原文地址: https://www.cveoy.top/t/topic/fnt6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录