PHPackages                             naminghive/rdap-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. naminghive/rdap-client

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

naminghive/rdap-client
======================

A PHP client to query RDAP (formerly WHOIS) services

0.0.2(2mo ago)010↓90.9%1proprietaryPHPPHP &gt;=8.1

Since Mar 31Pushed 2mo agoCompare

[ Source](https://github.com/NamingHive/rdap-client)[ Packagist](https://packagist.org/packages/naminghive/rdap-client)[ RSS](/packages/naminghive-rdap-client/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (2)Dependencies (3)Versions (3)Used By (1)

RDAP Client
===========

[](#rdap-client)

A modern, robust PHP 8.1+ client to query RDAP (Registration Data Access Protocol) services.

It seamlessly abstracts IANA bootstrap discovery, automatically fetching the correct registry base URLs and performing searches. The library caches bootstrap documents intelligently to prevent redundantly querying IANA limits.

Requirements
------------

[](#requirements)

- PHP &gt;= 8.1
- [Composer](https://getcomposer.org/)

Features
--------

[](#features)

- **Backed by Protocol Enums**: Strictly typed `Protocol` configurations.
- **Built-in File Caching**: Automatically caches IANA bootstrap mappings for 24-hours using `BootstrapCache`.
- **Guzzle HTTP Client Integration**: Uses robust standard `guzzlehttp/guzzle` wrappers under the hood, gracefully resolving timeout and protocol issues.

Installation
------------

[](#installation)

Install the library via Composer:

```
composer require naminghive/rdap-client
```

Usage
-----

[](#usage)

### Basic Search (Domain)

[](#basic-search-domain)

Use the `NamingHive\RDAP\Rdap` client instance and the `NamingHive\RDAP\Protocol` enum to search for domains, IPs, or ASN numbers.

```
use NamingHive\RDAP\Rdap;
use NamingHive\RDAP\Protocol;

// Initialize an RDAP Client targeting Domain registries
$rdap = new Rdap(Protocol::Domain);

try {
    $response = $rdap->search('google.com');

    if ($response !== null) {
        // Output basic entity information
        echo 'Handle: ' . $response->getHandle() . PHP_EOL;
        echo 'LDH Name: ' . $response->getLDHName() . PHP_EOL;

        // Output Name Servers
        foreach ($response->getNameservers() as $nameserver) {
            echo 'Nameserver: ' . $nameserver->getLdhName() . PHP_EOL;
        }
    } else {
        echo "Domain could not be found on any RDAP service.\n";
    }
} catch (NamingHive\RDAP\RdapException $e) {
    echo "Query failed: " . $e->getMessage() . "\n";
}
```

### Searching by IP Address

[](#searching-by-ip-address)

The flow is identical for IP queries configurations; directly supply the `IPv4` or `IPv6` protocols.

```
use NamingHive\RDAP\Rdap;
use NamingHive\RDAP\Protocol;

$rdap = new Rdap(Protocol::Ipv4);
$response = $rdap->search('8.8.4.4');

if ($response !== null) {
    echo 'Notice: ' . $response->getNotices()[0]->getTitle() . "\n";
}
```

### Supporting Standards

[](#supporting-standards)

This client adheres closely to modern RFC standards. Note that RDAP adoption differs by regional registry.

- **RFC 7480** - HTTP Usage in the Registration Data Access Protocol (RDAP)
- **RFC 7481** - Security Services for the Registration Data Access Protocol (RDAP)
- **RFC 7482** - Registration Data Access Protocol (RDAP) Query Format
- **RFC 7483** - JSON Responses for the Registration Data Access Protocol (RDAP)
- **RFC 7484** - Finding the Authoritative Registration Data (RDAP) Service
- **RFC 9083** - JSON Responses for the Registration Data Access Protocol (RDAP)

Customization
-------------

[](#customization)

The library allows overrides to both caching methods and Guzzle HTTP wrappers natively.

```
// Modifying cache durations
use NamingHive\RDAP\Data\Cache\BootstrapCache;

// Changes cache directory & reduces timeout
$customCache = new BootstrapCache(ttl: 3600, cacheDir: __DIR__ . '/var/cache');
$rdap = new Rdap(Protocol::Domain, cache: $customCache);
```

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance83

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

2

Last Release

85d ago

PHP version history (2 changes)0.0.1PHP &gt;=8.0

0.0.2PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/157a447476a71b34729aa087d49ad1d0d992b7f44fb4254e20ddf55cf85657a7?d=identicon)[Ploxian](/maintainers/Ploxian)

---

Top Contributors

[![metaregistrar](https://avatars.githubusercontent.com/u/3437914?v=4)](https://github.com/metaregistrar "metaregistrar (36 commits)")[![chaos0815](https://avatars.githubusercontent.com/u/915071?v=4)](https://github.com/chaos0815 "chaos0815 (26 commits)")[![luizgb](https://avatars.githubusercontent.com/u/12515006?v=4)](https://github.com/luizgb "luizgb (7 commits)")[![Ploxian](https://avatars.githubusercontent.com/u/221890979?v=4)](https://github.com/Ploxian "Ploxian (3 commits)")[![mathieu-gilloots](https://avatars.githubusercontent.com/u/1282351?v=4)](https://github.com/mathieu-gilloots "mathieu-gilloots (1 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![patryk](https://avatars.githubusercontent.com/u/64107?v=4)](https://github.com/patryk "patryk (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/naminghive-rdap-client/health.svg)

```
[![Health](https://phpackages.com/badges/naminghive-rdap-client/health.svg)](https://phpackages.com/packages/naminghive-rdap-client)
```

###  Alternatives

[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k496.1k34](/packages/neuron-core-neuron-ai)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3661.2M46](/packages/tencentcloud-tencentcloud-sdk-php)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751284.3k37](/packages/civicrm-civicrm-core)[roundcube/roundcubemail

The Roundcube Webmail suite

7.0k1.4k3](/packages/roundcube-roundcubemail)[spatie/laravel-export

Create a static site bundle from a Laravel app

672139.5k6](/packages/spatie-laravel-export)[nfse-nacional/nfse-php

This is my package nfse

1533.1k](/packages/nfse-nacional-nfse-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
