Skip to content
Extract root domain, subdomain name, and tld from a url, using the Public Suffix List.
Go
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore
README.md Fix missing error return
doc.go
tldextract.go
tldextract_test.go

README.md

tldextract

Extract root domain, subdomain name, tld from a url, using the the Public Suffix List.

Installation

Install tldextract:

go get github.com/joeguo/tldextract

To run unit tests, run this command in tldextract's source directory($GOPATH/src/github.com/joeguo/tldextract):

go test

Example

package main

import (
"fmt"
"github.com/joeguo/tldextract"
)


func main() {
    urls := []string{"git+ssh://www.github.com:8443/", "http://media.forums.theregister.co.uk", "http://218.15.32.76", "http://google.com?q=cats"}
    cache := "/tmp/tld.cache"
    extract, _ := tldextract.New(cache,false)

    for _, u := range (urls) {
        result:=extract.Extract(u)
        fmt.Printf("%+v;%s\n",result,u)
    }
}

Output will look like:

  &{Flag:1 Sub:www Root:github Tld:com};git+ssh://www.github.com:8443/
  &{Flag:1 Sub:media.forums Root:theregister Tld:co.uk};http://media.forums.theregister.co.uk
  &{Flag:2 Sub: Root:218.15.32.76 Tld:};http://218.15.32.76
  &{Flag:1 Sub: Root:google Tld:com};http://google.com?q=cats

Flag value meaning

const (
    Malformed = iota
    Domain
    Ip4
    Ip6
)

Demo:domainrx.com

Something went wrong with that request. Please try again.