Acabei conseguindo implementar depois de testar algumas configurações no arquivo WPAD, que ficou da seguinte forma:
function FindProxyForURL(url,host)
{
// Se o site estiver na rede interna, manda direto
if (isPlainHostName(host) ||
shExpMatch(host, "*.local") ||
isInNet(dnsResolve(host), "10.0.0.0", "255.255.255.0") ||
isInNet(dnsResolve(host), "20.0.0.0", "255.255.255.0") ||
isInNet(dnsResolve(host), "30.0.0.0", "255.255.255.0") ||
isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
return "DIRECT";
// Proxy da rede 1
if (isInNet(myIpAddress(), "10.0.0.0", "255.255.255.0"))
return "PROXY 10.0.0.1:3128";
// Proxy da rede 2
if (isInNet(myIpAddress(), "20.0.0.0", "255.255.255.0"))
return "PROXY 20.0.0.1:3128";
// Proxy da rede 3
if (isInNet(myIpAddress(), "30.0.0.0", "255.255.255.0"))
return "PROXY 30.0.0.1:3128";
// Caso não esteja em nenhuma das redes, bloqueia
return "PROXY 127.0.0.1:48890";
}
Meu principal problema era que o proxy serve outras subredes, então cada uma precisa do endereço correto para funcionar.
Uma dificuldade foi testar as modificações no arquivo, pois os navegadores fazem cache deste arquivo. No caso do Internet Explorer, é possível desabilitar esse cache. No Chrome não consegui desabilitar, mas após alguns minutos testando ele atualizou.