golang 写一个dns中转代码 中转wwwbaiducom 到119292929
下面是一个简单的 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
原文地址: https://www.cveoy.top/t/topic/fnt6 著作权归作者所有。请勿转载和采集!