Una búsqueda fallida no demuestra que el destino esté fuera de su red privada. Demuestra que esta evaluación de PAC no obtuvo la dirección que necesitaba.

Esa distinción importa cuando dnsResolve() alimenta una regla isInNet(). La implementación de PAC de Chromium devuelve null cuando falla la resolución. No construya la rama de fallo sobre el recuerdo de que el resultado siempre es una cadena vacía.

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 ejemplo envía los nombres sin resolver al proxy. Es una decisión de política, no un valor predeterminado seguro universal. Puede ser útil cuando el proxy tiene un resolutor o una vista de red que el cliente no tiene. Una red que exige resolución local necesita un resultado explícito distinto.

Resuelva una vez y reutilice el resultado. Así la decisión queda ligada a un solo valor y se evita repetir llamadas auxiliares que podrían ser lentas.

Compruebe también el consumidor real de PAC. Los auxiliares IPv4 heredados y los auxiliares IPv6 extendidos tienen contratos distintos. Una regla probada con la implementación de un navegador no demuestra compatibilidad en todas las aplicaciones que usan la misma URL de PAC.

Si el requisito es solo enrutar un sufijo corporativo conocido, una regla de nombre de host puede evitar por completo la búsqueda. Recurra a la clasificación por dirección cuando la dirección sea información que la política realmente necesita.

Artículos relacionados