Uma consulta que falhou não prova que o destino está fora da sua rede privada. Prova que esta avaliação PAC não obteve o endereço de que precisava.

Essa distinção importa quando dnsResolve() alimenta uma regra isInNet(). A implementação de PAC do Chromium devolve null quando a resolução falha. Não construa o ramo de falha sobre a memória de que o resultado é sempre uma string vazia.

function FindProxyForURL(url, host) {
    var address = dnsResolve(host);
    if (!address) {
        return "PROXY proxy.example:8080";
    }
    if (isInNet(address, "10.40.0.0", "255.255.0.0")) {
        return "DIRECT";
    }
    return "PROXY proxy.example:8080";
}

Este exemplo envia os nomes não resolvidos para o proxy. É uma escolha de política, não um padrão seguro universal. Pode ser útil quando o proxy tem um resolvedor ou uma visão de rede que o cliente não tem. Uma rede que exige resolução local precisa de um resultado explícito diferente.

Resolva uma vez e reutilize o resultado. Assim a decisão fica ligada a um único valor e evita-se repetir chamadas auxiliares que podem ser lentas.

Verifique também o consumidor real de PAC. Os auxiliares IPv4 herdados e os auxiliares IPv6 estendidos têm contratos diferentes. Uma regra testada com a implementação de um navegador não comprova suporte em todas as aplicações que usam o mesmo URL de PAC.

Se o requisito for apenas encaminhar um sufixo empresarial conhecido, uma regra de nome de host pode evitar totalmente a consulta. Recorra à classificação por endereço quando o endereço for informação de que a política realmente precisa.

Artigos relacionados