Pilihan lain untuk FoxyProxy tetapi saya akan menyarankan menggunakan fitur PAC jika pengaturan Anda rumit. Saya memiliki dua server proxy untuk dipilih, tetapi yang mana untuk dipilih terkadang sangat rumit. Untuk mengatur FoxyProxy agar menggunakan PAC, buka Proxy Details
tab dan pilih Automatic Proxy Configuration URL
dan masukkan sesuatu seperti file:///home/me/.myproxy.pac
. Berikut ini contoh file PAC:
function FindProxyForURL(url, host)
{
var DIRECT = "DIRECT";
var PROXY = "PROXY myproxy.company.com:80";
var LOCAL = "PROXY localhost:8118";
var rc = "";
// alert("My IP Address is: " + myIpAddress());
// special: DIRECT / localhost
if (dnsResolve(host) == "127.0.0.1") {
rc = DIRECT;
}
// special: DIRECT / plain name (no domain name (i.e. no dots)) (e.g. http://foobar)
// (must be local to where I'm at)
else if (isPlainHostName(host)) {
rc = DIRECT;
}
else {
// special: LOCAL / not at home & restricted hosts
if ((dnsDomainIs(host, "frank.home.com")) ||
(dnsDomainIs(host, "firewall.home.com")) ||
(dnsDomainIs(host, "backupserver.home.com"))) {
// determine if we're at home or not; home can resolve the laser printer
var AT_HOME = (isResolvable("myprinter.home.com") ? true : false);
if (! AT_HOME) {
rc = LOCAL;
}
else {
rc = DIRECT;
}
}
// general: DIRECT / not at work
else {
// determine if we're at work or not; work can resolve proxy server
var AT_WORK = (isResolvable("myproxy.company.com") ? true : false);
if (! AT_WORK) {
rc = DIRECT;
}
// ASSUMED: AT_WORK
// special: LOCAL / at work & broken work links
// (must use local proxy server to connect)
else if ((host == "download.company.com") ||
(host == "search.company.com") ||
(host == "www.company.com")) {
rc = LOCAL;
}
// general: DIRECT / at work & work intranet links
else if ((dnsDomainIs(host, ".company.com")) ||
(dnsDomainIs(host, ".companylocal.com")) ||
(dnsDomainIs(host, ".legacycompany.com"))) {
rc = DIRECT;
}
// general: DIRECT / at work & 192.168.*
else if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
rc = DIRECT;
}
// default: go through LOCAL
else {
rc = LOCAL;
}
}
}
// alert("Proxy for {" + host + "} is: " + rc);
return rc;
}
Perhatikan bahwa contoh di atas cukup tidak efisien karena biasanya akan berakhir dengan pencarian DNS di myproxy.company.com untuk setiap koneksi HTTP tunggal; Saya hard-kode AT_HOME
dan AT_WORK
dalam file .pac melalui program eksternal saat boot. Tetapi ini adalah contoh betapa rumitnya Anda dapat membuat skrip PAC, jika perlu.