En misslyckad uppslagning bevisar inte att målet ligger utanför ditt privata nät. Den bevisar att denna PAC-utvärdering inte fick adressen den behövde.

Den skillnaden spelar roll när dnsResolve() matar en isInNet()-regel. Chromiums PAC-implementering returnerar null när uppslagningen misslyckas. Bygg inte felgrenen på minnet av att resultatet alltid är en tom sträng.

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";
}

Det här exemplet skickar ej uppslagna namn till proxyn. Det är ett policyval, inte en universellt säker standard. Det kan vara användbart när proxyn har en resolver eller nätverksvy som klienten inte har. Ett nät som kräver lokal uppslagning behöver ett annat uttryckligt utfall.

Lös upp en gång och återanvänd resultatet. Det håller beslutet knutet till ett enda värde och undviker att upprepa potentiellt långsamma hjälpanrop.

Kontrollera också den faktiska PAC-konsumenten. Äldre IPv4-hjälpfunktioner och utökade IPv6-hjälpfunktioner har olika kontrakt. En regel som testats med en webbläsares implementering bevisar inte stöd i alla program som använder samma PAC-URL.

Om kravet bara är att dirigera ett känt företagssuffix kan en värdnamnsregel helt undvika uppslagningen. Använd adressbaserad klassificering när adressen är information som policyn verkligen behöver.

Relaterade artiklar