Als een vereiste opzoeking nog traditionele WHOIS gebruikt, kan een HTTP-proxy die TCP-uitwisseling dragen wanneer het beleid CONNECT naar de WHOIS-dienst toestaat. De client moet de proxy-handshake voltooien voordat hij de opzoekingstekst verstuurt. Voor een toegestane openbare WHOIS-test zonder geconfigureerde proxyreferenties biedt de HTTP-proxylijst kandidaat-tussenpersonen; bevestig apart dat één daarvan de host van de WHOIS-dienst en poort 43 toestaat.

Begin voor een hypothetische dienst met de naam whois.example met dit HTTP-verzoek:

CONNECT whois.example:43 HTTP/1.1
Host: whois.example:43

Schrijf HTTP-regeleinden als CRLF. Lees het volledige proxy-antwoord, inclusief de afsluitende lege kopregel, en controleer de numerieke successtatus. Een deel van de statusregel ontvangen is niet genoeg om het volgende protocol te starten.

Stuur daarna de WHOIS-tekst

Zodra de tunnel open is, stuurt u de query die die WHOIS-server verwacht. Een eenvoudige voorbeeldquery is:

example.com<CRLF>

De markering staat voor bytes voor regelterugloop en regelinvoer. Die maakt geen deel uit van de domeinnaam. Binnen deze WHOIS-uitwisseling is er geen HTTP GET-regel en geen HTTP-responsstatus.

Lees de tekst totdat de WHOIS-server de verbinding sluit. Een antwoord kan veel regels bevatten; de eerste nieuwe regel betekent niet dat het compleet is. Houd de time-outs voor verbinden en lezen beperkt in de implementatie.

Deze volgorde geeft de parser ook twee verschillende grenzen. Eerst komt een HTTP-kopblok. Daarna komt het WHOIS-antwoord, waarvan de voltooiing wordt gesignaleerd door het sluiten van de verbinding. Bewaar bytes die voorbij een verwerkte grens in de buffer staan in plaats van een hele netwerkread weg te gooien.

Een weigering door de proxy betekent dat de tunnel nooit is geopend, dus een domein daarna versturen kan geen WHOIS-resultaat opleveren. Als het antwoord van de server naar een andere WHOIS-dienst verwijst, heeft elke vervolgquery zijn eigen toegestane verbinding met die dienst nodig.

Gerelateerde artikelen