domain is a simple domain name parser for golang.
package main
import (
"fmt"
"log"
"github.com/lynxsecurity/domain"
)
func main() {
d, err := domain.New("/tmp/tld.cache")
if err != nil {
log.Fatal(err)
}
record, err := d.Parse("www.hackerone.com")
if err != nil {
log.Fatal(err)
}
fmt.Println("Subdomain:", record.Subdomain)
fmt.Println("Name: ", record.Name)
fmt.Println("TLD:", record.TLD)
fmt.Println()
levels := d.Levels("long.subdomain.for.example.com")
fmt.Println("Levels")
for _, level := range levels {
fmt.Println("-", level)
}
}
Inspired by tldomains