Xestionar un fallo de DNS dentro dunha regra PAC
Dalle a unha busca DNS PAC fallida a súa propia rama de política en vez de tratala como un enderezo verificado fóra da rede local.
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.