autoproxy.pac

Lehet olyan autoproxy scriptet írni, ami a kliens IP-címétől függően ad proxycímet? Van pár alhálóm, és mindegyiken más a proxy.

ez alapján próbálkozom:
http://linuxmafia.com/faq/Web/autoproxy.html

de nem okosodom. segítség!

Hozzászólások

Jó helyen keresgéltél... isInNet() lesz a barátod.

function FindProxyForURL(url, host) {

if ( shExpMatch(url, "*tavoliproxy.org*" ) )
return "PROXY tavoli.proxy.hu:1234";

.. itt visszatoljuk a tavoli proxikat

if ( shExpMatch(url, "*mysite.hu*")
|| !dnsDomainLevels(host)
|| isInNet(host, "127.0.0.1", "255.255.255.255")
|| isInNet(host, "10.0.0.0", "255.255.255.0")
|| shExpMatch(url, "http://mydirectwebsite.com*")
... ide jon a tobbi kifejezesed
)
return "DIRECT";

return "PROXY myproxy.hu:3128";
}

Köszönöm a válaszokat és hadd értetlenkedjek:
function FindProxyForURL(url, host) {

--------
if ( shExpMatch(url, "*tavoliproxy.org*" ) )
return "PROXY tavoli.proxy.hu:1234";
--------
Ez ugye azt jelenti, hogy ha a lekért URL-ben tavoliproxy.org volna, akkor visszaadjuk, hogy a tavoli.proxy.hu a használandó proxy?

--------
!dnsDomainLevels(host)
--------
ennek mi értelme van? Ugye ez egy számot ad vissza, de mi értelme a tagadásnak?

itt lenne egy kész megoldás:

function FindProxyForURL(url,host)
{
myip = myIpAddress();
if( isPlainHostName(host) )
return "DIRECT";
else
if (
isInNet(myip, "10.0.0.0", "255.255.0.0") ||
isInNet(myip, "10.1.0.0", "255.255.0.0")
)
return "PROXY 10.1.1.10:8080";
else
if (
isInNet(myip, "10.2.0.0", "255.255.0.0") ||
isInNet(myip, "10.3.0.0", "255.255.0.0")
)
return "PROXY 10.3.1.10:8080";
}

szepitsunk :)


function FindProxyForURL(url,host)
{
var proxy_van_hu = "PROXY 10.1.1.10:3128";
var proxy_van_de = "PROXY 10.3.1.10:3128";
var proxy_nincs = "DIRECT";

myip = myIpAddress();
if( isPlainHostName(host) )
return proxy_nincs;
else
if (
isInNet(myip, "10.0.0.0", "255.255.0.0") ||
isInNet(myip, "10.1.0.0", "255.255.0.0")
)
return proxy_van_hu;
else
if (
isInNet(myip, "10.2.0.0", "255.255.0.0") ||
isInNet(myip, "10.3.0.0", "255.255.0.0")
)
return proxy_van_de;
}