{"id":27127543,"url":"https://github.com/arrayaccess/rdap-client","last_synced_at":"2025-04-07T17:41:12.341Z","repository":{"id":205010187,"uuid":"713188744","full_name":"ArrayAccess/RDAP-Client","owner":"ArrayAccess","description":"RDAP Client For PHP (Formerly Whois via http protocol)","archived":false,"fork":false,"pushed_at":"2025-01-03T12:34:05.000Z","size":105,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T13:45:52.996Z","etag":null,"topics":["php-rdap","rdap","rdap-client","rdap-protocol","whois"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArrayAccess.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["arrayiterator"],"liberapay":"ArrayIterator","patreon":"ArrayIterator","custom":["https://www.paypal.me/pentagonal"]}},"created_at":"2023-11-02T02:28:14.000Z","updated_at":"2025-01-03T12:43:47.000Z","dependencies_parsed_at":"2024-03-09T14:44:00.887Z","dependency_job_id":"3c6c596c-2817-4709-8d0a-c8303b9ec54d","html_url":"https://github.com/ArrayAccess/RDAP-Client","commit_stats":null,"previous_names":["arrayiterator/rdap-client","arrayaccess/rdap-client"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArrayAccess%2FRDAP-Client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArrayAccess%2FRDAP-Client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArrayAccess%2FRDAP-Client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArrayAccess%2FRDAP-Client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArrayAccess","download_url":"https://codeload.github.com/ArrayAccess/RDAP-Client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247700335,"owners_count":20981725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php-rdap","rdap","rdap-client","rdap-protocol","whois"],"created_at":"2025-04-07T17:41:11.670Z","updated_at":"2025-04-07T17:41:12.330Z","avatar_url":"https://github.com/ArrayAccess.png","language":"PHP","funding_links":["https://github.com/sponsors/arrayiterator","https://liberapay.com/ArrayIterator","https://patreon.com/ArrayIterator","https://www.paypal.me/pentagonal"],"categories":[],"sub_categories":[],"readme":"# RDAP CLIENT\n\nRDAP Client For PHP (Formerly Whois via http protocol)\n\n## Requirements\n\n- php `8.1` or later\n- `ext-json`\n- `ext-intl`\n\n### IETF RDAP Reference\n\n- Registration Data Access Protocol (RDAP) Object Tagging **[#RFC8521](https://datatracker.ietf.org/doc/html/rfc8521)**\n- Security Services for the Registration Data Access Protocol (RDAP) **[#RFC7481](https://datatracker.ietf.org/doc/html/rfc7481)**\n- Registration Data Access Protocol (RDAP) Query Format **[#RFC9082](https://datatracker.ietf.org/doc/html/rfc9082)**\n- JSON Responses for the Registration Data Access Protocol (RDAP) **[#RFC9083](https://datatracker.ietf.org/doc/html/rfc9083)**\n- Finding the Authoritative Registration Data (RDAP) Service **[#RFC9224](https://datatracker.ietf.org/doc/html/rfc9224)**\n\nSchema Inventory \u0026 Analysis of WHOIS object\n\n- Inventory and Analysis of WHOIS Registration Objects **[#RFC7485](https://datatracker.ietf.org/doc/html/rfc7485)**\n\n### IANA RDAP Data\n\nIana provide data about rdap\n\n- HTTP : [https://data.iana.org/rdap/](https://data.iana.org/rdap/)\n\n- Bootstrap Service Registry for AS Number Space **[#RFC9224](https://datatracker.ietf.org/doc/html/rfc9224)** [https://www.iana.org/assignments/rdap-asn/rdap-asn.xhtml](https://www.iana.org/assignments/rdap-asn/rdap-asn.xhtml)\n- Bootstrap Service Registry for Domain Name Space **[#RFC9224](https://datatracker.ietf.org/doc/html/rfc9224)** [https://www.iana.org/assignments/rdap-dns/rdap-dns.xhtml](https://www.iana.org/assignments/rdap-dns/rdap-dns.xhtml)\n- Bootstrap Service Registry for IPv4 Address Space **[#RFC9224](https://datatracker.ietf.org/doc/html/rfc9224)** [https://www.iana.org/assignments/rdap-ipv4/rdap-ipv4.xhtml](https://www.iana.org/assignments/rdap-ipv4/rdap-ipv4.xhtml)\n- Bootstrap Service Registry for IPv6 Address Space **[#RFC9224](https://datatracker.ietf.org/doc/html/rfc9224)** [https://www.iana.org/assignments/rdap-ipv6/rdap-ipv6.xhtml](https://www.iana.org/assignments/rdap-ipv6/rdap-ipv6.xhtml)\n- Bootstrap Service Registry for Provider Object Tags **[#RFC8521](https://datatracker.ietf.org/doc/html/rfc8521)** [https://www.iana.org/assignments/rdap-object-tags/rdap-object-tags.xhtml](https://www.iana.org/assignments/rdap-object-tags/rdap-object-tags.xhtml)\n- Recovered IPv4 Pool **[#RFC8521](https://datatracker.ietf.org/doc/html/rfc8521)** [https://www.iana.org/assignments/ipv4-recovered-address-space/ipv4-recovered-address-space.xhtml](https://www.iana.org/assignments/ipv4-recovered-address-space/ipv4-recovered-address-space.xhtml)\n\nFor list of predefined recovered IPv4 addresses: **[RecoveredIPv4.php](src/Services/RecoveredIPv4.php)**\n\n### Example Usage\n\n\nSee [Client.php](src/Client.php) for more methods\n\n\n```php\nuse ArrayAccess\\RdapClient\\Client;\nuse ArrayAccess\\RdapClient\\Interfaces\\RdapRequestInterface;\nuse ArrayAccess\\RdapClient\\Protocols\\AsnProtocol;\nuse ArrayAccess\\RdapClient\\Protocols\\DomainProtocol;\nuse ArrayAccess\\RdapClient\\Protocols\\IPv4Protocol;\nuse ArrayAccess\\RdapClient\\Protocols\\IPv6Protocol;\nuse ArrayAccess\\RdapClient\\Protocols\\NsProtocol;\n\n$client = new Client();\n/**\n * @var RdapRequestInterface\u003cstring, DomainProtocol\u003e $request\n */\n$domainName = 'example.com';\n$request = $client-\u003erequest($domainName);\n\n/**\n * @var RdapRequestInterface\u003cstring, IPv4Protocol\u003e $request\n */\n$ipv4 = '192.0.47.59'; // iana.org ipv4\n$request = $client-\u003erequest($ipv4);\n\n/**\n * @var RdapRequestInterface\u003cstring, IPv6Protocol\u003e $request\n */\n$ipv6 = '2404:6800:4003:c01::66'; // google.com\n$request = $client-\u003erequest($ipv6);\n\n/**\n * @var RdapRequestInterface\u003cstring, NsProtocol\u003e $request\n * Name server guessing by prefix (ns[0-9]*).domain-name.ext or [^\\.]+.(ns[0-9]*.[^\\.]+\\.)(?:.+).domain-name.ext\n */\n$nameserver = 'ns1.google.com'; // google name server\n$request = $client-\u003erequest($nameserver);\n\n/**\n * @var RdapRequestInterface\u003cstring, AsnProtocol\u003e $request\n * Autonomous System Number parsed by \"^(?ASN?)?(?\u003cas_number\u003e[0-9]+)$\"\n */\n$asNumber = 'AS15169'; // Google LLC ASN\n// or just put the numeric string / integer\n$request = $client-\u003erequest($asNumber);\n\n```\n\n```php\n// getting object response\n$response = $request-\u003egetResponse();\n// getting json data\n$jsonResponse = $response-\u003egetResponseJson();\n// getting definition object\n$definition = $response-\u003egetDefinition();\n// if domain \u003e getting related / another whois server request if possible\n$alternateRequest = $definition-\u003egetRelatedRequest();\n// json serialize\n$fallbackToJson = json_encode($definition, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);\n```\n\n```php\n// direct call with custom request target\n// makes sure the type of RDAP uri target is equal '/domain/GOOGLE.com' as domain-protocol\n$newRequest = $request-\u003ewithRdapSearchURL('https://rdap.markmonitor.com/rdap/domain/GOOGLE.COM');\n$response = $newRequest-\u003egetResponse();\n```\n\n\nSee [Response/Definitions](src/Response/Definitions) for more details about code\n\n\n## Note\n\nThe code of data definition contains strict types.\nSome of the invalid data will throw an error.\n\n## WHOIS Data Collection\n\nRefer to: _(gist)_ [WHOIS List](https://gist.github.com/ArrayIterator/1a8df2b5c59f50990661f11c050c7c2a) to get the list of whois servers / ip range / sTLD etc.\n\n**Caution!** the gist contains huge data.\n\n## LICENSE\n\n[GPL-3.0-or-later](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farrayaccess%2Frdap-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farrayaccess%2Frdap-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farrayaccess%2Frdap-client/lists"}