Jan 06
Automatic Proxy Configuration
Eu tinha um problema. No emprego o meu PC precisava de uma proxy configurada e em casa não. Todos os dias tinha de tirar a proxy em 3 programas quando chegava a casa e voltar a colocar no dia seguinte quando chegava ao trabalho. Aqui vou deixar a solução:
-
Criar um ficheiro de texto com extensão .pac (usualmente chamado proxy.pac) e grava-lo numa qualquer directoria (ex. D:\);
-
Nesse ficheiro escrever o seguinte conteudo:
function FindProxyForURL(url, host) { if (isInNet(myIpAddress(), "192.168.100.0", "255.255.255.0")) { return "PROXY 192.168.200.1:8080"; } else return "DIRECT"; } -
No Internet Explorer ir ás opções de rede (Tools > Internet Options > Connections > LAN Settings) e efectuar a seguinte configuração:
Et voilá… para o exemplo indicado, caso o computador se encontre numa rede 192.168.100.* ele irá utilizar a proxy 192.168.200.1 na porta 8080, caso contrário acederá à Internet directamente sem passar por qualquer proxy.
Esta função pode ser enriquecida com uma variedade de funções. Para tal podem consultar por exemplo este site que é muito bom nisto: FindProxyForURL.com
O meu exemplo exemplo:
function FindProxyForURL(url, host)
{
//Se o PC está na rede 192.168.100.* executa o seguinte
if (isInNet(myIpAddress(), "192.168.100.0", "255.255.255.0"))
{
//Se o host do URL não refere domínio (não tem pontos) devolve “DIRECT” (Sem Proxy)
if (isPlainHostName(host)) { return "DIRECT"; }
//Se o URL começa por “localhost” devolve “DIRECT” (Sem Proxy)
if (shExpMatch(url, "*localhost*")) { return "DIRECT"; }
//Se o URL contém “127.0.0.1” devolve “DIRECT” (Sem Proxy)
if (shExpMatch(url, "*127.0.0.1*")) { return "DIRECT"; }
//Se o URL contém “empresa.dom” devolve “DIRECT” (Sem Proxy)
if (shExpMatch(url, "*.empresa.dom*")) { return "DIRECT"; }
//Se o URL contém “192.168.” devolve “DIRECT” (Sem Proxy)
if (shExpMatch(url, "*192.168.*")) { return "DIRECT"; }
//Se o URL contém “172.30.” devolve “DIRECT” (Sem Proxy)
if (shExpMatch(url, "*172.30.*")) { return "DIRECT"; }
//Se o URL contém “172.28.” devolve “DIRECT” (Sem Proxy)
if (shExpMatch(url, "*172.28.*")) { return "DIRECT"; }
//Se o URL contém “.edp.pt” mas que não seja "www.edp.pt" devolve “DIRECT” (Sem Proxy)
if (shExpMatch(url, "*.edp.pt*") && !shExpMatch(url, "*www.edp.pt*")) { return "DIRECT"; }
// Se não se verificar nenhumas das condições anteriores devolve “PROXY 192.168.1.2:8080” (Proxy no endereço 192.168.1.2 na porta 8080)
return "PROXY 192.168.1.2:8080";
}
//Se o PC NÃO está na rede 192.168.100.* executa o seguinte
else
{
// Devolve sempre “DIRECT” (Sem Proxy)
return "DIRECT";
}
}
Isto permite não só automatizar a proxy bem como todas as excepções que tenho que usar no local de trabalho.

January 6th, 2009 at 19:14
É só suminho neste inicio de ano!!!!
Tou já a ver que para andares com tempo pra estas coisas, só podes ter a mota parada..
Sai pra rua!!! Por favor!!
January 16th, 2009 at 11:29
[…] ao post Automatic Proxy Configuration descobri que a opção de configuração automática da proxy no Firefox não funciona desde a […]