Você pode configurá-lo com um PAC (script de configuração automática de proxy). Eles são pequenos scripts escritos em Javascript que permitem especificar várias regras de conexão. A maioria dos navegadores modernos de desktop pode lê-los sem problemas, eu tenho o mesmo configurado no Internet Explorer e no Firefox.
Um arquivo PAC mínimo que sempre envia para o servidor proxy proxy.companyname na porta 81:
function FindProxyForURL(url, host)
{
return "PROXY proxy.companyname:8080";
}
E um exemplo um pouco mais complicado de um arquivo PAC que verifica em qual rede você está, verificando qual faixa de endereços IP você escolheu. Neste exemplo, todos os PCs clientes da sua empresa recebem um endereço IP no intervalo 10.10. * Pelo DHCP e acessam a Internet através do servidor proxy proxy.companyname na porta 81.
//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.
function FindProxyForURL(url, host)
{
var ip = myIpAddress();
var debug = "";
if(debug)
{
alert("proxy.pac IP=" + ip + " HOST=" + host + " URL=" + url);
}
// All client PCs on the internal network will have a 10.10.x.x address, check if I have this
if (shExpMatch(ip, "10.10.*"))
{
if(debug)
{
alert("Proxy for " + url);
}
return "PROXY proxy.companyname:81";
}
// If you have a different IP then this isn't the company network
else
{
if(debug)
{
alert("You are not at CompanyName so going direct for " + url);
}
return "DIRECT";
}
}
O script também tem um modo de depuração que você pode usar para testar se está funcionando e qual modo (conexão PROXY ou DIRECT) acha que sua conexão atual deve ser.
Você também pode criar um script mais complexo que verifique se o servidor ao qual você está se conectando está na rede interna da empresa (e, portanto, deseja uma conexão DIRETA, embora o PC esteja na rede da empresa). onde você colocaria qualquer coisa que normalmente colocasse na caixa de exceções do proxy do IE, expandindo assim:
//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.
function FindProxyForURL(url, host)
{
var ip = myIpAddress();
var debug = "";
if(debug)
{
alert("proxy.pac IP=" + ip + " HOST=" + host + " URL=" + url);
}
// Detect if trying to connect to internal/intranet host
if(isPlainHostName(host) || dnsDomainIs(host, "intranet.companyname"))
{
if(debug)
{
alert("Direct for " + url);
}
return "DIRECT";
}
// Detect if trying to connect to URLs on the internal network via internal DNS suffix or IP address
if(shExpMatch(url, "*.companyname") || shExpMatch(host, "10.100.*"))
{
if(debug)
{
alert("Direct for " + url);
}
return "DIRECT";
}
// All client PCs on the internal network will have a 10.10.x.x address, check if I have this
if (shExpMatch(ip, "10.10.*"))
{
if(debug)
{
alert("Proxy for " + url);
}
return "PROXY proxy.companyname:8080";
}
// If you have a different IP then this isn't the company network
else
{
if(debug)
{
alert("You are not at CompanyName so going direct for " + url);
}
return "DIRECT";
}
}
Use este arquivo salvando-o em algum lugar na unidade C do seu PC como algo como proxy.pac e, em seguida, no Internet Explorer, vá para Ferramentas - > Opções (ou Painel de Controle - > Opções da Internet) e depois clique na guia Conexões, clique no botão Configurações da LAN. Agora pegue o tick da caixa "Usar um servidor proxy" na parte inferior e, em vez disso, coloque um visto em "Usar script de configuração automática" e digite o endereço do seu arquivo PAC usando um arquivo: // URL como file://C:/proxy.pac
.
Comoalternativa,paraoFirefox,váparaFerramentas->Opções,cliquenaguiaAvançado,cliquenaguiaRede,cliquenobotãoConfigurações,cliquenaconfiguração"URL de configuração automática do proxy", novamente usando um arquivo: /// URL (observe que no Firefox há três barras após os dois pontos, por exemplo file:///C:/proxy.pac
.
ObservequeoInternetExplorer11mudouessecomportamentoeagoravocênãopodecarregarumarquivoPACapartirdeumURL'file://',vocêdeveusarum'HTTP://'ouURL'HTTPS://'.
InInternetExplorer11,theWinINETteamhasdisabledWinINET’ssupportforfile://basedscriptstopromoteinteroperabilityacrossnetworkstacks.CorporationsareadvisedtoinsteadhosttheirproxyconfigurationscriptsonaHTTPorHTTPSserver.
Háumasoluçãoalternativaquepodereativaresserecursoporenquanto,masvocênãoéaconselhadoausá-lo,jáqueatualizaçõesfuturastambémpodemdesativá-lo.
Asatemporaryworkaround,thisblockcanberemovedbysettingthefollowingregistrykey:
Key:HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\InternetSettings\Value:EnableLegacyAutoProxyFeaturesType:REG_DWORDData:1Keepinmindthatthisshouldonlybeatemporarymeasure,asthisblockwasintroducedforgoodreasons,andremovingtheblockwon’tmagicallyfixyourWinHTTP-basedapplications.
NotetambémquedepoisdefazeressaalteraçãonoIE11vocêprecisaráalteraraconfiguraçãodeendereçodoseuscriptdeconfiguraçãoautomática,poisoIE11sóaceitaumasintaxeparaisso(vejaaparteinferiordoartigolinkadonoblogIEInternalsabaixo).
Noentanto,conformeobservado,éimprovávelqueessasoluçãoalternativadachavedoRegistrocontinuefuncionandonasversõesfuturasdoInternetExplorer,portantoémelhorencontrarumamaneirademanteroPACemumservidordaWeb.OservidorWebIISinternodoWindowsfuncionaria,eháoutrosmaispequenosporaíquefuncionariamparaainstalaçãoemseulaptoptambém.
MaisinformaçõessobreaentradadoblogIEInternals