mirror of
https://github.com/Xevion/rdap.git
synced 2026-01-31 02:25:22 -06:00
104 lines
3.9 KiB
Markdown
104 lines
3.9 KiB
Markdown
# rdap
|
|
|
|
[![Version][badge-version]][npm]
|
|
[![License][badge-license]][license]
|
|
[![CI][badge-ci]][ci-workflow]
|
|
[![Codecov][badge-codecov]][codecov]
|
|
[![TypeScript][badge-typescript]][typescript]
|
|
[![Next.js][badge-nextjs]][nextjs]
|
|
[![React][badge-react]][react]
|
|
|
|
[badge-version]: https://img.shields.io/badge/version-0.9.1-blue
|
|
[badge-license]: https://img.shields.io/badge/license-MIT-green
|
|
[badge-ci]: https://github.com/Xevion/rdap/actions/workflows/ci.yml/badge.svg
|
|
[badge-codecov]: https://codecov.io/gh/Xevion/rdap/branch/master/graph/badge.svg
|
|
[badge-typescript]: https://img.shields.io/badge/TypeScript-5.9-blue
|
|
[badge-nextjs]: https://img.shields.io/badge/Next.js-16-black
|
|
[badge-react]: https://img.shields.io/badge/React-19-blue
|
|
|
|
A web-based RDAP client for querying domains, IP addresses, and ASNs. Has dark mode.
|
|
|
|
[][live-demo]
|
|
[][live-demo]
|
|
|
|
> [!TIP]
|
|
> **Try the live demo at [rdap.xevion.dev][live-demo]** to query domains, IPs, ASNs, and more in real-time.
|
|
|
|
## What is RDAP?
|
|
|
|
RDAP (Registration Data Access Protocol) is the successor to WHOIS. It returns structured JSON instead of inconsistent plaintext, making it easier to parse and use programmatically.
|
|
|
|
## Why?
|
|
|
|
The [rdap.org client][rdap-client] works fine, but I wanted something with dark mode and shareable URLs. Plus it was a good excuse to learn Next.js 16.
|
|
|
|
Main additions:
|
|
|
|
- Dark mode (actually important when you stare at this stuff all day)
|
|
- Every query gets a shareable URL
|
|
- Better type detection for inputs
|
|
- Cleaner UI with status badges and collapsible sections
|
|
- JSContact support alongside vCard
|
|
- Static export, no backend needed
|
|
|
|
## Features
|
|
|
|
**Query types**: domains, IPv4/IPv6 (with CIDR), ASNs, entity handles, nameservers, or raw RDAP URLs. Type detection is automatic but can be overridden.
|
|
|
|
**Supported objects**: domains, IP networks, autonomous systems, entities (contacts/registrars), and nameservers. Shows all the standard RDAP fields plus DNSSEC info when available.
|
|
|
|
**Contacts**: Displays both vCard (jCard) and JSContact (RFC 9553) formats. Shows names, organizations, emails, phones, addresses, etc.
|
|
|
|
**UI stuff**: Dark/light mode, copy buttons everywhere, collapsible sections, status badges with hover tooltips, relative timestamps ("2 days ago"), responsive layout.
|
|
|
|
**Technical**: Uses IANA bootstrap files to resolve RDAP server URLs. All queries happen client-side from your browser. Zod schemas for validation. Fully static build.
|
|
|
|
## Development
|
|
|
|
Uses pnpm:
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm dev # localhost:3000
|
|
pnpm build # static export
|
|
pnpm test # vitest
|
|
pnpm check # tsc + eslint
|
|
```
|
|
|
|
## Self-Hosting
|
|
|
|
Fully static. Queries go directly from your browser to RDAP servers (no backend). Just run `pnpm build` and host the output anywhere.
|
|
|
|
CORS issue: Some RDAP servers don't set CORS headers, so those queries will fail in the browser. Might add an optional proxy later.
|
|
|
|
## Privacy
|
|
|
|
The demo at [rdap.xevion.dev][live-demo] has telemetry (PostHog) to track what breaks. Query targets aren't logged for successful queries, only type/timing. Failed queries might include the target for debugging. Self-hosted builds have no telemetry.
|
|
|
|
## Contributing
|
|
|
|
PRs welcome. Uses ESLint, Prettier, Husky git hooks, and conventional commits.
|
|
|
|
## License
|
|
|
|
[MIT License][license] © 2025 Ryan Walters
|
|
|
|
<!-- Links -->
|
|
|
|
[live-demo]: https://rdap.xevion.dev
|
|
[rdap-client]: https://client.rdap.org
|
|
[ci-workflow]: https://github.com/Xevion/rdap/actions/workflows/ci.yml
|
|
[codecov]: https://codecov.io/gh/Xevion/rdap
|
|
[pnpm]: https://pnpm.io/
|
|
[nodejs]: https://nodejs.org
|
|
[nextjs]: https://nextjs.org
|
|
[react]: https://react.dev
|
|
[typescript]: https://www.typescriptlang.org
|
|
[radix]: https://www.radix-ui.com
|
|
[tailwind]: https://tailwindcss.com
|
|
[zod]: https://zod.dev
|
|
[vitest]: https://vitest.dev
|
|
[next-themes]: https://github.com/pacocoursey/next-themes
|
|
[license]: LICENSE
|
|
[npm]: https://www.npmjs.com/package/rdap
|