Se uma pesquisa necessária ainda usa WHOIS tradicional, um proxy HTTP pode transportar essa troca TCP quando a sua política permite CONNECT para o serviço WHOIS. O cliente tem de concluir o handshake do proxy antes de enviar o texto da pesquisa. Para um teste WHOIS público permitido sem credenciais de proxy configuradas, a lista de proxies HTTP oferece intermediários candidatos; confirme separadamente que um deles permite o anfitrião do serviço WHOIS e a porta 43.

Para um serviço hipotético chamado whois.example, comece com este pedido HTTP:

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

Escreva os fins de linha HTTP como CRLF. Leia a resposta completa do proxy, incluindo a sua linha final vazia de cabeçalho, e verifique o estado numérico de sucesso. Receber apenas parte da linha de estado não basta para iniciar o protocolo seguinte.

Depois envie o texto WHOIS

Depois de o túnel abrir, envie a consulta que esse servidor WHOIS espera. Uma consulta ilustrativa simples é:

example.com<CRLF>

O marcador representa os bytes de retorno de carro e de mudança de linha. Não faz parte do nome de domínio. Dentro desta troca WHOIS não há linha HTTP GET nem estado de resposta HTTP.

Leia o texto até o servidor WHOIS fechar a ligação. Uma resposta pode conter muitas linhas; a primeira linha nova não significa que esteja completa. Mantenha os tempos limite de ligação e leitura limitados na implementação.

Esta sequência também dá ao analisador dois limites distintos. Primeiro vem um bloco de cabeçalhos HTTP. Depois vem a resposta WHOIS, cuja conclusão é sinalizada pelo fecho da ligação. Preserve os bytes em memória intermédia para além de um limite já analisado em vez de descartar uma leitura de rede inteira.

Uma recusa do proxy significa que o túnel nunca abriu, pelo que enviar um domínio depois não pode produzir um resultado WHOIS. Se a resposta do servidor apontar para outro serviço WHOIS, qualquer consulta seguinte precisa da sua própria ligação permitida a esse serviço.

Artigos relacionados