mirror of
https://github.com/fosrl/olm.git
synced 2026-03-01 16:26:43 +00:00
@@ -1,53 +0,0 @@
|
|||||||
package dns
|
|
||||||
|
|
||||||
// Example usage of DNS record management (not compiled, just for reference)
|
|
||||||
/*
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net"
|
|
||||||
"github.com/fosrl/olm/dns"
|
|
||||||
)
|
|
||||||
|
|
||||||
func exampleUsage() {
|
|
||||||
// Assuming you have a DNSProxy instance
|
|
||||||
var proxy *dns.DNSProxy
|
|
||||||
|
|
||||||
// Add an A record for example.com pointing to 192.168.1.100
|
|
||||||
ip := net.ParseIP("192.168.1.100")
|
|
||||||
err := proxy.AddDNSRecord("example.com", ip)
|
|
||||||
if err != nil {
|
|
||||||
// Handle error
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add multiple A records for the same domain (round-robin)
|
|
||||||
proxy.AddDNSRecord("example.com", net.ParseIP("192.168.1.101"))
|
|
||||||
proxy.AddDNSRecord("example.com", net.ParseIP("192.168.1.102"))
|
|
||||||
|
|
||||||
// Add an AAAA record (IPv6)
|
|
||||||
ipv6 := net.ParseIP("2001:db8::1")
|
|
||||||
proxy.AddDNSRecord("example.com", ipv6)
|
|
||||||
|
|
||||||
// Query records
|
|
||||||
aRecords := proxy.GetDNSRecords("example.com", dns.RecordTypeA)
|
|
||||||
// Returns: [192.168.1.100, 192.168.1.101, 192.168.1.102]
|
|
||||||
|
|
||||||
aaaaRecords := proxy.GetDNSRecords("example.com", dns.RecordTypeAAAA)
|
|
||||||
// Returns: [2001:db8::1]
|
|
||||||
|
|
||||||
// Remove a specific record
|
|
||||||
proxy.RemoveDNSRecord("example.com", net.ParseIP("192.168.1.101"))
|
|
||||||
|
|
||||||
// Remove all records for a domain
|
|
||||||
proxy.RemoveDNSRecord("example.com", nil)
|
|
||||||
|
|
||||||
// Clear all DNS records
|
|
||||||
proxy.ClearDNSRecords()
|
|
||||||
}
|
|
||||||
|
|
||||||
// How it works:
|
|
||||||
// 1. When a DNS query arrives, the proxy first checks its local record store
|
|
||||||
// 2. If a matching A or AAAA record exists locally, it returns that immediately
|
|
||||||
// 3. If no local record exists, it forwards the query to upstream DNS (8.8.8.8 or 8.8.4.4)
|
|
||||||
// 4. All other DNS record types (MX, CNAME, TXT, etc.) are always forwarded upstream
|
|
||||||
|
|
||||||
*/
|
|
||||||
Reference in New Issue
Block a user