master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
1
branch
5
tags
Code
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
go get github.com/lixiangzhong/dnsutil
//Normal
package main
import (
"fmt"
"github.com/lixiangzhong/dnsutil"
)
func main() {
var dig dnsutil.Dig
dig.SetDNS("8.8.8.8") //or ns.xxx.com
a, err := dig.A("google.com") // dig google.com @8.8.8.8
fmt.Println(a, err)
}//msg
package main
import (
"fmt"
"github.com/lixiangzhong/dnsutil"
"github.com/miekg/dns"
)
func main() {
var dig dnsutil.Dig
dig.SetDNS("1.1.1.1")
msg, err := dig.GetMsg(dns.TypeA, "google.com")
if err != nil {
fmt.Println(err)
return
}
// fmt.Println(msg)
// or
fmt.Println(msg.Question) //question section
fmt.Println(msg.Answer) //answer section.
fmt.Println(msg.Ns) //authority section.
fmt.Println(msg.Extra) //additional section.
}//EDNS0ClientSubnet
package main
import (
"fmt"
"github.com/lixiangzhong/dnsutil"
)
func main() {
var dig dnsutil.Dig
dig.SetDNS("8.8.8.8") //or ns.xxx.com
dig.SetEDNS0ClientSubnet("123.123.123.123") //support edns0clientsubnet
a, err := dig.A("google.com") // dig google.com @8.8.8.8 +client=123.123.123.123
fmt.Println(a, err)
}//Retry
package main
import (
"fmt"
"github.com/lixiangzhong/dnsutil"
)
func main() {
var dig dnsutil.Dig
dig.Retry=3 //retry when write or read message return error . defualt 1
dig.SetDNS("8.8.8.8") //or ns.xxx.com
a, err := dig.A("google.com") // dig google.com @8.8.8.8
fmt.Println(a, err)
}//dig +trace
package main
import (
"fmt"
"github.com/lixiangzhong/dnsutil"
)
func main() {
domain := "google.com"
var dig dnsutil.Dig
rsps, err := dig.Trace(domain) //dig +trace google.com
if err != nil {
fmt.Println(err)
return
}
for _, rsp := range rsps {
if rsp.Msg.Authoritative {
for _, answer := range rsp.Msg.Answer {
fmt.Println(answer)
}
}
for _, ns := range rsp.Msg.Ns {
fmt.Println(ns)
}
fmt.Println("\tReceived from", rsp.Server, rsp.ServerIP)
}
}//检查是否被污染
package main
import (
"fmt"
"github.com/lixiangzhong/dnsutil"
)
func main() {
polluted, err := dnsutil.IsPolluted("facebook.com")
if err != nil {
fmt.Println(err)
return
}
if polluted {
fmt.Println("被污染,你懂的")
} else {
fmt.Println("正常")
}
}//SetBackupDNS
//同时向设置的2个DNS发起请求,返回最快响应的那个结果
//Initiate requests to two DNS settings at the same time, returning the fastest response result
package main
import (
"fmt"
"github.com/lixiangzhong/dnsutil"
)
func main() {
var dig dnsutil.Dig
dig.SetDNS("1.1.1.1")
dig.SetBackupDNS("8.8.8.8")
a, err := dig.A("google.com")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(a)
}