Unha busca fallida non demostra que o destino estea fóra da túa rede privada. Demostra que esta avaliación PAC non obtivo o enderezo que necesitaba.

Esa distinción importa cando dnsResolve() alimenta unha regra isInNet(). A implementación PAC de Chromium devolve null cando falla a resolución. Non constrúas a rama de fallo sobre o recordo de que o resultado é sempre unha cadea baleira.

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 envía os nomes sen resolver ao proxy. É unha decisión de política, non un valor predeterminado seguro universal. Pode ser útil cando o proxy ten un resolvedor ou unha visión de rede que o cliente non ten. Unha rede que require resolución local necesita un resultado explícito distinto.

Resolve unha vez e reutiliza o resultado. Así a decisión queda ligada a un único valor e evítase repetir chamadas auxiliares que poderían ser lentas.

Comproba tamén o consumidor real de PAC. Os auxiliares IPv4 herdados e os auxiliares IPv6 estendidos teñen contratos distintos. Unha regra probada coa implementación dun navegador non demostra compatibilidade en todas as aplicacións que usan o mesmo URL de PAC.

Se o requisito é só encamiñar un sufixo corporativo coñecido, unha regra de nome de host pode evitar por completo a busca. Recorre á clasificación por enderezo cando o enderezo sexa información que a política realmente necesita.

Artigos relacionados