Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zmh-program/next-whois-ui
๐งช Your Next-Gen Whois Lookup Tool With Modern UI. Support Domain/IPv4/IPv6/ASN/CIDR Whois Lookup And Powerful Features.
https://github.com/zmh-program/next-whois-ui
api nextjs ui whois
Last synced: about 22 hours ago
JSON representation
๐งช Your Next-Gen Whois Lookup Tool With Modern UI. Support Domain/IPv4/IPv6/ASN/CIDR Whois Lookup And Powerful Features.
- Host: GitHub
- URL: https://github.com/zmh-program/next-whois-ui
- Owner: zmh-program
- License: gpl-3.0
- Created: 2024-07-23T14:15:35.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-11-27T07:10:03.000Z (29 days ago)
- Last Synced: 2024-12-11T01:04:15.651Z (15 days ago)
- Topics: api, nextjs, ui, whois
- Language: TypeScript
- Homepage: https://who.zmh.me
- Size: 1.12 MB
- Stars: 296
- Watchers: 1
- Forks: 52
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐งช Next Whois UI
๐ Lightweight & Beautiful Whois Query Tool[English](README.md) ยท [็ฎไฝไธญๆ](README_CN.md) ยท [็น้ซไธญๆ](README_TW.md) ยท [ะ ัััะบะธะน](README_RU.md) ยท [ๆฅๆฌ่ช](README_JP.md) ยท [Deutsch](README_DE.md)
[![Deploy to Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/zmh-program/next-whois-ui)
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/zmh-program/next-whois-ui)
## ๐ Features
No need to say more, just try it out! ๐ฅณ1. โจ **Pretty UI**: Modern design with [Shadcn UI](https://ui.shadcn.com), make you feel comfortable.
2. ๐ฑ **Responsive**: Works well on Mobileโ / Tabletโ / Desktopโ , PWA App Support.
3. ๐ **Multi Theme**: Multi theme support (*Light & Dark*), system theme detection, switch theme as you like.
4. ๐ **Flexible Query**: Powered by Next.js, support serverless deployment and fast query.
5. ๐ **Record History**: History records are stored in local storage, easy to view and query history.
6. ๐ก **Open API**: Simple API for whois query, easy to integrate with other services.
7. ๐ **IPv4 & IPv6 Whois**: Support IPv4, IPv6, Domain, ASN, CIDR whois query.
8. ๐ฆ **Result Capture**: Capture whois result, easy to share and save.
9. ๐ก **Whois Cache**: Support whois cache based on Redis, improve query speed.
10. ๐ [WIP] **Internationalization**: Support multiple languages. ([#6](https://github.com/zmh-program/next-whois-ui/issues/6))๐ [Create Pull Request](https://github.com/zmh-program/next-whois-ui/pulls)
## Deploy
#### `1` ๐ Platforms (Recommended)
[Vercel](https://vercel.com/import/project?template=https://github.com/zmh-program/next-whois-ui) / [Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/zmh-program/next-whois-ui) / [Zeabur](https://zeabur.com/templates/UHCCCT)
#### `2` ๐ณ Docker
```bash
docker run -d -p 3000:3000 programzmh/next-whois-ui
```#### `3` ๐จ Source Code
```bash
git clone https://github.com/zmh-program/next-whois-ui
cd next-whois-uinpm install -g pnpm
pnpm install
pnpm dev
```## ๐ Envs
### SEO
- `NEXT_PUBLIC_SITE_TITLE`: Site Title
- `NEXT_PUBLIC_SITE_DESCRIPTION`: Site Description
- `NEXT_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`Response OK (200)
```json
{
"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": "..."
}
}
```Error Response Internal Server Error (500)
```json
{
"time": 0.609,
"status": false,
"error": "No match for domain google.notfound (e.g. domain is not registered)"
}
```Error Response Bad Request (400)
```json
{
"time": -1,
"status": false,
"error": "Query is required"
}
```## ๐ง Tech Stack
- Next.js
- Shadcn UI & Tailwind CSS
- Whois Core Lib (@[whois-raw](https://www.npmjs.com/package/whois-raw))## ๐ช TLDs Support
๐ [TLDs Whois Parser Lib Source Code](./src/lib/whois/lib.ts)โค TIP: The Whois Parser for some TLDs may not be currently compatible, thanks for contributing your [Pull Request](https://github.com/zmh-program/next-whois-ui/pulls) to make this project support more TLDs!