From a13da5295505f9f8397bdcd2b7eaf71c4026e84c Mon Sep 17 00:00:00 2001 From: Pinga <121483313+getpinga@users.noreply.github.com> Date: Fri, 4 Aug 2023 16:44:15 +0300 Subject: [PATCH] Updates to the RDAP --- rdap/rdap.php | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/rdap/rdap.php b/rdap/rdap.php index 0a5be9d..1b17a50 100644 --- a/rdap/rdap.php +++ b/rdap/rdap.php @@ -18,25 +18,32 @@ $http->on('request', function ($request, $response) { return; } + // Extract the request path + $requestPath = $request->server['request_uri']; + // Handle domain query - if ($request->server['request_uri'] === '/domain') { - handleDomainQuery($request, $response, $pdo); + if (preg_match('#^/domain/([^/?]+)#', $requestPath, $matches)) { + $domainName = $matches[1]; + handleDomainQuery($request, $response, $pdo, $domainName); } // Handle entity (contacts) query - elseif ($request->server['request_uri'] === '/entity') { - handleEntityQuery($request, $response, $pdo); + elseif (preg_match('#^/entity/([^/?]+)#', $requestPath, $matches)) { + $entityHandle = $matches[1]; + handleEntityQuery($request, $response, $pdo, $entityHandle); } // Handle nameserver query - elseif ($request->server['request_uri'] === '/nameserver') { - handleNameserverQuery($request, $response, $pdo); + elseif (preg_match('#^/nameserver/([^/?]+)#', $requestPath, $matches)) { + $nameserverHandle = $matches[1]; + handleNameserverQuery($request, $response, $pdo, $nameserverHandle); } // Handle help query - elseif ($request->server['request_uri'] === '/help') { + elseif ($requestPath === '/help') { handleHelpQuery($request, $response, $pdo); } // Handle search query (e.g., search for domains by pattern) - elseif ($request->server['request_uri'] === '/domains') { - handleSearchQuery($request, $response, $pdo); + elseif (preg_match('#^/domains\?name=([^/?]+)#', $requestPath, $matches)) { + $searchPattern = $matches[1]; + handleSearchQuery($request, $response, $pdo, $searchPattern); } else { $response->status(404); @@ -50,9 +57,9 @@ $http->on('request', function ($request, $response) { // Start the server $http->start(); -function handleDomainQuery($request, $response, $pdo) { +function handleDomainQuery($request, $response, $pdo, $domainName) { // Extract and validate the domain name from the request - $domain = strtoupper(trim($request->get['domain'])); + $domain = $domainName; // ... Perform validation as in the WHOIS server ... // Perform the RDAP lookup