diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
index 1902cc0..4e662ee 100644
--- a/.github/dependabot.yaml
+++ b/.github/dependabot.yaml
@@ -9,5 +9,6 @@ updates:
   - package-ecosystem: gomod
     directory: "/"
     schedule:
-      interval: daily
+      interval: weekly
+      time: "11:00" # 3am Pacific, after github.com/domainr/whoistest
     open-pull-requests-limit: 10
diff --git a/.github/workflows/automerge.yaml b/.github/workflows/automerge.yaml
new file mode 100644
index 0000000..a3ecbe0
--- /dev/null
+++ b/.github/workflows/automerge.yaml
@@ -0,0 +1,26 @@
+name: Merge
+
+on:
+  pull_request_review:
+    types:
+      - submitted
+
+jobs:
+  merge:
+    name: Merge pull request
+    if: |
+      github.event.review.state == 'approved' &&
+      github.event.pull_request.user.login == 'dependabot[bot]'
+    runs-on: ubuntu-latest
+    steps:
+      - name: Merge
+        uses: actions/github-script@v4.0.2
+        with:
+          github-token: ${{ secrets.DOMAINRBOT_RW_GITHUB_ACCESS_TOKEN }}
+          script: |
+            github.pulls.merge({
+              owner: context.payload.repository.owner.login,
+              repo: context.payload.repository.name,
+              pull_number: context.payload.pull_request.number,
+              merge_method: 'merge'
+            })
diff --git a/.github/workflows/go.yaml b/.github/workflows/go.yaml
index 236472f..b55bdfd 100644
--- a/.github/workflows/go.yaml
+++ b/.github/workflows/go.yaml
@@ -3,12 +3,12 @@ name: Go
 on:
   push:
     branches:
-      - master
+      - main
   pull_request:
 
 jobs:
   test:
-    name: Test Go
+    name: Test
     runs-on: ubuntu-latest
     timeout-minutes: 15
     steps:
@@ -30,3 +30,23 @@ jobs:
 
       - name: Verify repo is unchanged
         run: git diff --exit-code HEAD
+
+  review:
+    name: Review pull request
+    needs: test
+    if: |
+      github.event.pull_request.user.login == 'dependabot[bot]' &&
+      contains(github.head_ref, 'dependabot/go_modules/github.com/zonedb/zonedb')
+    runs-on: ubuntu-latest
+    steps:
+      - name: Approve pull request
+        uses: actions/github-script@v4.0.2
+        with:
+          github-token: ${{ secrets.DOMAINRBOT_RW_GITHUB_ACCESS_TOKEN }}
+          script: |
+            github.pulls.createReview({
+              owner: context.payload.repository.owner.login,
+              repo: context.payload.repository.name,
+              pull_number: context.payload.pull_request.number,
+              event: 'APPROVE'
+            })
diff --git a/README.md b/README.md
index 47063f0..0fba95a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # Whois
 
-[![Project Status](https://img.shields.io/circleci/project/domainr/whois/master.svg)](https://circleci.com/gh/domainr/whois) [![GoDoc](http://img.shields.io/badge/docs-GoDoc-blue.svg)](https://godoc.org/github.com/domainr/whois)
+[![GoDoc](http://img.shields.io/badge/docs-GoDoc-blue.svg)](https://godoc.org/github.com/domainr/whois)
 
 `go get github.com/domainr/whois`
 
diff --git a/debian/changelog b/debian/changelog
index 98dc0a3..73ae57d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+golang-github-domainr-whois (0.0~git20210726.53b091c-0kali1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Kali Janitor <janitor@kali.org>  Wed, 28 Jul 2021 12:49:47 -0000
+
 golang-github-domainr-whois (0.0~git20200925.9f8bed8-0kali2) kali-dev; urgency=medium
 
   * Add depends on golang-github-domainr-whoistest-dev
diff --git a/debian/patches/dont-use-whois-test.patch b/debian/patches/dont-use-whois-test.patch
index 044ce7e..1b1feb8 100644
--- a/debian/patches/dont-use-whois-test.patch
+++ b/debian/patches/dont-use-whois-test.patch
@@ -11,10 +11,10 @@ once.
  response_test.go   | 23 +++++++++++------------
  3 files changed, 26 insertions(+), 29 deletions(-)
 
-diff --git a/cmd/client/main.go b/cmd/client/main.go
-index 714ef69..a0d438d 100644
---- a/cmd/client/main.go
-+++ b/cmd/client/main.go
+Index: golang-github-domainr-whois/cmd/client/main.go
+===================================================================
+--- golang-github-domainr-whois.orig/cmd/client/main.go
++++ golang-github-domainr-whois/cmd/client/main.go
 @@ -11,7 +11,6 @@ import (
  	"time"
  
@@ -63,22 +63,22 @@ index 714ef69..a0d438d 100644
  	}
  
  	fmt.Println(res.String())
-diff --git a/go.mod b/go.mod
-index f46869b..e2d78a0 100644
---- a/go.mod
-+++ b/go.mod
+Index: golang-github-domainr-whois/go.mod
+===================================================================
+--- golang-github-domainr-whois.orig/go.mod
++++ golang-github-domainr-whois/go.mod
 @@ -5,7 +5,6 @@ go 1.14
  require (
- 	github.com/PuerkitoBio/goquery v1.5.1
+ 	github.com/PuerkitoBio/goquery v1.7.1
  	github.com/andybalholm/cascadia v1.2.0
 -	github.com/domainr/whoistest v0.0.0-20180714175718-26cad4b7c941
  	github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32
  	github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
- 	github.com/zonedb/zonedb v1.0.2821
-diff --git a/response_test.go b/response_test.go
-index bb04916..0d82b80 100644
---- a/response_test.go
-+++ b/response_test.go
+ 	github.com/zonedb/zonedb v1.0.3323
+Index: golang-github-domainr-whois/response_test.go
+===================================================================
+--- golang-github-domainr-whois.orig/response_test.go
++++ golang-github-domainr-whois/response_test.go
 @@ -5,7 +5,6 @@ import (
  	"strings"
  	"testing"
diff --git a/go.mod b/go.mod
index f46869b..39253b2 100644
--- a/go.mod
+++ b/go.mod
@@ -3,12 +3,12 @@ module github.com/domainr/whois
 go 1.14
 
 require (
-	github.com/PuerkitoBio/goquery v1.5.1
+	github.com/PuerkitoBio/goquery v1.7.1
 	github.com/andybalholm/cascadia v1.2.0
 	github.com/domainr/whoistest v0.0.0-20180714175718-26cad4b7c941
 	github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32
 	github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
-	github.com/zonedb/zonedb v1.0.2821
-	golang.org/x/net v0.0.0-20200707034311-ab3426394381
-	golang.org/x/text v0.3.3
+	github.com/zonedb/zonedb v1.0.3323
+	golang.org/x/net v0.0.0-20210614182718-04defd469f4e
+	golang.org/x/text v0.3.6
 )
diff --git a/go.sum b/go.sum
index 3060a1b..15f60f5 100644
--- a/go.sum
+++ b/go.sum
@@ -1,81 +1,27 @@
-github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE=
-github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
-github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
+github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9FPnz4=
+github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY=
 github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE=
 github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY=
 github.com/domainr/whoistest v0.0.0-20180714175718-26cad4b7c941 h1:E7ehdIemEeScp8nVs0JXNXEbzb2IsHCk13ijvwKqRWI=
 github.com/domainr/whoistest v0.0.0-20180714175718-26cad4b7c941/go.mod h1:iuCHv1qZDoHJNQs56ZzzoKRSKttGgTr2yByGpSlKsII=
-github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
+github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
 github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32 h1:W6apQkHrMkS0Muv8G/TipAy/FJl/rCYT0+EuS8+Z0z4=
 github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
 github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca h1:NugYot0LIVPxTvN8n+Kvkn6TrbMyxQiuvKdEwFdR9vI=
 github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU=
 github.com/wsxiaoys/terminal v0.0.0-20160513160801-0940f3fc43a0/go.mod h1:IXCdmsXIht47RaVFLEdVnh1t+pgYtTAhQGj73kz+2DM=
-github.com/zonedb/zonedb v1.0.2770 h1:ezllDcuKcbokg3UTnk1kNzCzjmra7TIETUZL9DvAi6w=
-github.com/zonedb/zonedb v1.0.2770/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2772 h1:dLhI9aVfia0G8ri4RHEHG5FZY2Q6vAqrNw310zruGq0=
-github.com/zonedb/zonedb v1.0.2772/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2773 h1:3lTH6fifCT9Im9zZdxAiGHf6ep5FuX0HOPbLnQHqVxg=
-github.com/zonedb/zonedb v1.0.2773/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2774 h1:ztyye09LvtTZXH1XWmVxG7ssYuqChBOI2ODPfzud2Q0=
-github.com/zonedb/zonedb v1.0.2774/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2775 h1:VyUq9rJ5mv/fqh4xZNZx7sVpX+IMdM3z+ZqumyZ64vE=
-github.com/zonedb/zonedb v1.0.2775/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2776 h1:oHaWhZfsTd4CYJ+4lK+IVGFimrXsgjzeMpRlmncrkQs=
-github.com/zonedb/zonedb v1.0.2776/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2779 h1:ehWsXkwmTgz3iTQ4j8+x2SsDz/jff6k6sLF9tjQzKlk=
-github.com/zonedb/zonedb v1.0.2779/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2780 h1:psJHSPqlbxYPB790KZNS40e6O/ou/6pRpjP08Dpoca0=
-github.com/zonedb/zonedb v1.0.2780/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2781 h1:lRKR8tfD0Kgwv/N8p1jHxsd8C6Qvs4wrwvrRcxy2bMQ=
-github.com/zonedb/zonedb v1.0.2781/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2782 h1:S0JdgMbdIVaCn57QRv9QW1SeJ9g3HBkoCxOvC764Pow=
-github.com/zonedb/zonedb v1.0.2782/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2783 h1:xBpRZD0AHKHXcggtshnAwsNKCf4dJDBsSJBoCp/6fzM=
-github.com/zonedb/zonedb v1.0.2783/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2786 h1:g9qhUcF66vBwjkPS6we8TZTJou3CxiVk2yTVbxFaKKY=
-github.com/zonedb/zonedb v1.0.2786/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2787 h1:JV6PU7aDSwvbr+FrYo2F3Zc5YVqB1tBscA7srnA5/8o=
-github.com/zonedb/zonedb v1.0.2787/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2788 h1:KfXSfFtnMGDyUhXHaYWxD1F9OwFIiXg2G6SOqXm1HAU=
-github.com/zonedb/zonedb v1.0.2788/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2789 h1:lYoh0lrmnRCpwCIrkfZbOd1i3QMwQgDWWCcoTTayIdk=
-github.com/zonedb/zonedb v1.0.2789/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2790 h1:R6QOeSvfCa28FUaFFrrObbmSTMHozM+wrftl88wWy9U=
-github.com/zonedb/zonedb v1.0.2790/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2793 h1:n7MKkeDnYjtrOLtoxo+C/EIWsRT1xmIs23hgcxz/b50=
-github.com/zonedb/zonedb v1.0.2793/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2794 h1:TCDg0imNwjN8J8R2zRWgGwkDnkoH6af0m+S6K6mgERE=
-github.com/zonedb/zonedb v1.0.2794/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2795 h1:L2ecGxGk7mAChuf7c8bT4L93hhoaF/4LeM4499bNeJ4=
-github.com/zonedb/zonedb v1.0.2795/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2801 h1:nUY0gXE6bw+9nPxbt18ZmDkXVtZlixHamoTKOSzBiME=
-github.com/zonedb/zonedb v1.0.2801/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2804 h1:dHyxQXgIYI8dNbrhLS5H//BucDsD7UCOOdMeG0HgXl4=
-github.com/zonedb/zonedb v1.0.2804/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-github.com/zonedb/zonedb v1.0.2821 h1:QJFXjDp+nLa2J7YjNzp8bvn6nrtrr9g+LQFQCIOWlmo=
-github.com/zonedb/zonedb v1.0.2821/go.mod h1:bhR3M4yTaeYFi8gXx84qwo2s29HLWzPgwPd/m/RRbyA=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
+github.com/zonedb/zonedb v1.0.3323 h1:j9b3NJ5KCeAk/TyX05KvMz48KiJkMnV9iBi4OKOil1k=
+github.com/zonedb/zonedb v1.0.3323/go.mod h1:TeTt0mHRypbNGGvTXxePWvodD3NeneGmhddxobPCOHY=
 golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
-golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
+golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/whois.go b/whois.go
index e9c637b..ad06d58 100644
--- a/whois.go
+++ b/whois.go
@@ -28,14 +28,21 @@ func Server(query string) (string, string, error) {
 	if z == nil {
 		return "", "", fmt.Errorf("no public zone found for %s", query)
 	}
-	host := z.WhoisServer()
+
+	// Try whois URL first (these are relatively rare)
 	wu := z.WhoisURL()
-	if host != "" {
-		return host, wu, nil
+	if wu != "" {
+		u, err := url.Parse(wu)
+		if err == nil && u.Host != "" {
+			return u.Host, wu, nil
+		}
 	}
-	u, err := url.Parse(wu)
-	if err == nil && u.Host != "" {
-		return u.Host, wu, nil
+
+	// Then try host (more common)
+	h := z.WhoisServer()
+	if h != "" {
+		return h, "", nil
 	}
+
 	return "", "", fmt.Errorf("no whois server found for %s", query)
 }
diff --git a/whois_test.go b/whois_test.go
new file mode 100644
index 0000000..7c400f1
--- /dev/null
+++ b/whois_test.go
@@ -0,0 +1,43 @@
+package whois
+
+import (
+	"testing"
+
+	"github.com/zonedb/zonedb"
+)
+
+func TestServer(t *testing.T) {
+	tests := []struct {
+		domain     string
+		wantServer string
+		wantURL    string
+		wantErr    bool
+	}{
+		{"example.fake-domain", "", "", true},
+		{"example.com", "whois.verisign-grs.com", "", false},
+		{"example.nr", "www.cenpac.net.nr", "http://www.cenpac.net.nr/dns/whois.html", false},
+	}
+
+	for _, tt := range tests {
+		t.Run(tt.domain, func(t *testing.T) {
+			z := zonedb.PublicZone(tt.domain)
+			if z == nil {
+				if !tt.wantErr {
+					t.Errorf("%v shouldn’t exist", tt.domain)
+				}
+				return
+			}
+			gotServer, gotURL, err := Server(tt.domain)
+			if (err != nil) != tt.wantErr {
+				t.Errorf("Server() error = %v, wantErr %v", err, tt.wantErr)
+				return
+			}
+			if gotServer != tt.wantServer {
+				t.Errorf("Server() server = %v, want %v", gotServer, tt.wantServer)
+			}
+			if gotURL != tt.wantURL {
+				t.Errorf("Server() URL = %v, want %v", gotURL, tt.wantURL)
+			}
+		})
+	}
+}