Awesome
<div align="center">๐งช Next Whois UI
๐ Lightweight & Beautiful Whois Query Tool
English ยท ็ฎไฝไธญๆ ยท ็น้ซไธญๆ ยท ะ ัััะบะธะน ยท ๆฅๆฌ่ช ยท Deutsch
</div>๐ Features
No need to say more, just try it out! ๐ฅณ
- โจ Pretty UI: Modern design with Shadcn UI, make you feel comfortable.
- ๐ฑ Responsive: Works well on Mobileโ / Tabletโ / Desktopโ , PWA App Support.
- ๐ Multi Theme: Multi theme support (Light & Dark), system theme detection, switch theme as you like.
- ๐ Flexible Query: Powered by Next.js, support serverless deployment and fast query.
- ๐ Record History: History records are stored in local storage, easy to view and query history.
- ๐ก Open API: Simple API for whois query, easy to integrate with other services.
- ๐ IPv4 & IPv6 Whois: Support IPv4, IPv6, Domain, ASN, CIDR whois query.
- ๐ฆ Result Capture: Capture whois result, easy to share and save.
- ๐ก Whois Cache: Support whois cache based on Redis, improve query speed.
- ๐ [WIP] Internationalization: Support multiple languages. (#6)
๐ Create Pull Request
Deploy
1
๐ Platforms (Recommended)
2
๐ณ Docker
docker run -d -p 3000:3000 programzmh/next-whois-ui
3
๐จ Source Code
git clone https://github.com/zmh-program/next-whois-ui
cd next-whois-ui
npm install -g pnpm
pnpm install
pnpm dev
๐ Envs
SEO
NEXT_PUBLIC_SITE_TITLE
: Site TitleNEXT_PUBLIC_SITE_DESCRIPTION
: Site DescriptionNEXT_PUBLIC_SITE_KEYWORDS
: Site Keywords
WHOIS
NEXT_PUBLIC_HISTORY_LIMIT
: History Limit (Default: 6)NEXT_PUBLIC_MAX_WHOIS_FOLLOW
: Max Domain Whois Follow (Default: 0)NEXT_PUBLIC_MAX_IP_WHOIS_FOLLOW
: Max IP Whois Follow (Default: 5)
CACHE
REDIS_HOST
: Redis Host (CACHE DISABLED WHEN EMPTY)REDIS_PORT
: Redis Port (Default: 6379)REDIS_PASSWORD
: Redis Password (OPTIONAL)REDIS_DB
: Redis DB (Default: 0)REDIS_CACHE_TTL
: Redis Cache TTL Secs (Default: 3600)
๐ API Reference
GET
/api/lookup?query=google.com
{
"time": 1.547,
"status": true,
"cached": false,
"result": {
"domain": "GOOGLE.COM",
"registrar": "MarkMonitor Inc.",
"registrarURL": "http://www.markmonitor.com",
"ianaId": "292",
"whoisServer": "whois.markmonitor.com",
"updatedDate": "2019-09-09T15:39:04.000Z",
"creationDate": "1997-09-15T04:00:00.000Z",
"expirationDate": "2028-09-14T04:00:00.000Z",
"status": [
{
"status": "clientDeleteProhibited",
"url": "https://icann.org/epp#clientDeleteProhibited"
},
{
"status": "clientTransferProhibited",
"url": "https://icann.org/epp#clientTransferProhibited"
},
{
"status": "clientUpdateProhibited",
"url": "https://icann.org/epp#clientUpdateProhibited"
},
{
"status": "serverDeleteProhibited",
"url": "https://icann.org/epp#serverDeleteProhibited"
},
{
"status": "serverTransferProhibited",
"url": "https://icann.org/epp#serverTransferProhibited"
},
{
"status": "serverUpdateProhibited",
"url": "https://icann.org/epp#serverUpdateProhibited"
}
],
"nameServers": [
"NS1.GOOGLE.COM",
"NS2.GOOGLE.COM",
"NS3.GOOGLE.COM",
"NS4.GOOGLE.COM"
],
"registrantOrganization": "Unknown",
"registrantProvince": "Unknown",
"registrantCountry": "Unknown",
"registrantPhone": "+1 2086851750",
"registrantEmail": "Unknown",
"rawWhoisContent": "..."
}
}
</details>
<details>
<summary><strong>Error Response</strong> Internal Server Error (500)</summary>
{
"time": 0.609,
"status": false,
"error": "No match for domain google.notfound (e.g. domain is not registered)"
}
</details>
<details>
<summary><strong>Error Response</strong> Bad Request (400)</summary>
{
"time": -1,
"status": false,
"error": "Query is required"
}
</details>
๐ง Tech Stack
- Next.js
- Shadcn UI & Tailwind CSS
- Whois Core Lib (@whois-raw)
๐ช TLDs Support
๐ TLDs Whois Parser Lib Source Code
โค TIP: The Whois Parser for some TLDs may not be currently compatible, thanks for contributing your Pull Request to make this project support more TLDs!