banner graphic
Esempi

File di esempio del proxy automatico in JavaScript o JScript

Di seguito sono riportati esempi di utilizzo di un file pac per specificare un URL per il proxy automatico. Per utilizzare queste funzioni, è necessario modificare i nomi dei proxy, i numeri di porta e gli indirizzi IP.

Note

Esempio 1: Gli host locali effettuano la connessione direttamente, tutti gli altri attraverso un proxy

La funzione riportata di seguito verifica che il nome dell'host corrisponda a un host locale e, in caso affermativo, che la connessione sia diretta. Se il nome dell'host non corrisponde a un host locale, la connessione avverrà attraverso il proxy (proxy).

funzione FindProxyForURL(url, host)
  {
    if (isPlainHostName(host))
      return "DIRECT";
    else
      return "PROXY proxy:80";
  }

La funzione isPlainHostName controlla se vi sono punti nel nome dell'host. In caso affermativo, restituisce false, altrimenti restituisce true.

Esempio 2: Gli host all'interno del firewall effettuano la connessione direttamente, i server locali all'esterno attraverso un proxy

La funzione riportata di seguito verifica che il nome dell'host non includa il nome del dominio oppure che sia parte di un particolare dominio (.societa.it), ma che non sia né www né home.

function FindProxyForURL(url, host)
  {
    if ((isPlainHostName(host) ||
      dnsDomainIs(host, ".societa.it")) &&
      !localHostOrDomainIs(host, "www.societa.it") &&
      !localHostOrDoaminIs(host, "home.societa.it"))
      return "DIRECT";
    else
      return "PROXY proxy:80";
  }

Note

Esempio 3: Se è possibile risolvere l'host, effettuare la connessione direttamente. Altrimenti utilizzare un proxy.

La funzione riportata di seguito richiede al server DNS di risolvere il nome dell'host che gli viene passato. Se questo è possibile, viene effettuata una connessione diretta, in caso contrario attraverso un proxy. Questa funzione risulta utile quando viene utilizzato un server interno DNS per la risoluzione di tutti i nomi interni degli host.

function FindProxyForURL(url, host)
  {
    if (isResolvable(host))
      return "DIRECT";
    else
      return "PROXY proxy:80";
  }

Vedere la nota sulla funzione isResolvable all'inizio della pagina.

Esempio 4: Se l'host si trova nella subnet specificata, effettuare la connessione direttamente. Altrimenti, effettuare la connessione attraverso un a proxy.

La funzione riportata di seguito confronta una maschera e un modello di indirizzo IP specificati con il nome dell'host. Questa funzione è utile quando alcuni host di una subnet devono essere connessi direttamente ed altri attraverso un proxy.

function FindProxyForURL(url, host)
  {
    if (isInNet(host, "999.99.9.9", "255.0.255.0"))
      return "DIRECT";
    else
      return "PROXY proxy:80";
  }

Vedere la nota sulla funzione isInNet all'inizio della pagina.

La funzione isInNet(host, modello, maschera) restituisce true se l'indirizzo IP dell'host corrisponde al modello specificato. La maschera indica quale parte dell'indirizzo IP deve corrispondere (255=ricerca corrispondenza, 0=ignora).

Esempio 5: Determinare il tipo di connessione sulla base del dominio dell'host

La funzione riportata di seguito specifica una connessione diretta se l'host è locale. In caso contrario, la funzione determinerà quale proxy dovrà essere utilizzato a seconda del dominio dell'host. Questa funzione è utile se il nome del dominio dell'host è uno dei criteri di selezione del proxy.

function FindProxyForURL(url, host)
  {
    if (isPlainHostName(host))
      return "DIRECT";
    else if (shExpMatch(host, "*.com"))
      return "PROXY comproxy:80";
    else if (shExpMatch(host, "*.edu"))
      return "PROXY eduproxy:80";
    else
      return "PROXY proxy";
  }

La funzione shExpMatch(str, shexp) restituisce true se, tramite l'utilizzo di modelli di espressione di shell, str corrisponde a shexp.

Esempio 6: Determinare il tipo di connessione sulla base del protocollo utilizzato

La funzione riportata di seguito estrae il protocollo utilizzato e sulla base di questo esegue una selezione di proxy. Se non è possibile trovare una corrispondenza con un protocollo, verrà effettuata una connessione diretta. Questa funzione è utile quando il protocollo utilizzato è uno dei criteri di selezione del proxy.

function FindProxyForURL(url, host)
  {
    if (url.substring(0, 5) == "http:") {
      return "PROXY proxy:80";
    }
    else if (url.substring(0, 4) == "ftp:") {
      return "PROXY fproxy:80";
    }
    else if (url.substring(0, 7) == "gopher:") {
      return "PROXY gproxy";
    }
    else if (url.substring(0, 6) == "https:") {
      return "PROXY secproxy:8080";
    }
    else {
      return "DIRECT";
    }
  }

La funzione substring estrae da una stringa il numero di caratteri specificato.

Esempio 7: Determinare l'impostazione del proxy verificando che il nome dell'host corrisponda all'indirizzo IP

La funzione riportata di seguito effettua la selezione di un proxy convertendo il nome dell'host in un indirizzo IP e confrontandolo con una stringa specificata.

function FindProxyForURL(url, host)
  {
    if (dnsResolve(host) == "999.99.99.999") {  // = http://secproxy
      return "PROXY secproxy:8080";
    }
    else {
      return "PROXY proxy:80";
    }
  }

Vedere la nota sulla funzione dnsResolve all'inizio della pagina.

Esempio 8: Effettuare una connessione attraverso un proxy se l'indirizzo IP dell'host corrisponde a un indirizzo IP specificato, altrimenti effettuare la connessione direttamente

La funzione riportata di seguito consente di effettuare la selezione di un proxy sulla base di un indirizzo IP specificato. A differenza dell'esempio 7, nel quale viene utilizzata la funzione dnsResolve per convertire il nome dell'host nell'indirizzo IP numerico, in questo esempio la funzione viene chiamata per recuperare esplicitamente l'indirizzo IP numerico.

function FindProxyForURL(url, host)
  {
    if (myIpAddress() == "999.99.999.99") {
      return "PROXY proxy:80";
    }
    else {
      return "DIRECT";
    }
  }

La funzione myIpAddress restituisce in formato composto da numeri interi separati da punti l'indirizzo IP dell'host sul quale è in esecuzione il browser.

Esempio 9: Se il nome dell'host contiene punti, effettuare la connessione attraverso un proxy. Altrimenti effettuare la connessione direttamente.

La funzione riportata di seguito verifica il numero dei punti contenuti nel nome dell'host. Se vengono rilevati dei punti, effettuare la connessione attraverso un proxy. In caso contrario, effettuare una connessione diretta. Questa funzione consente di determinare il tipo di connessione sulla base delle caratteristiche del nome dell'host.

function FindProxyForURL(url, host)
  {
    if (dnsDomainLevels(host) > 0) {  // se il numero di punti in host > 0
      return "PROXY proxy:80";
    }
    return "DIRECT";
  }

La funzione dnsDomainLevels restituisce un numero intero uguale al numero di punti contenuti nel nome dell'host.

Esempio 10: Specificare i giorni della settimana in cui effettuare la connessione attraverso un proxy e i giorni in cui effettuare una connessione diretta

La funzione riportata di seguito determina il tipo di connessione specificando i giorni della settimana in cui utilizzare un proxy. Nei giorni non inclusi tra quelli specificati, effettuare una connessione diretta. Questa funzione potrebbe essere utilizzata per impiegare un proxy quando il traffico di dati è intenso e per consentire una connessione diretta quando il traffico è irrilevante.

function FindProxyForURL(url, host)
  {
    if(weekdayRange("WED", "SAT", "GMT"))
      return "PROXY proxy:80";
    else
      return "DIRECT";
  }

La funzione weekdayRange(giorno1 [,giorno2] [,GMT] ) restituisce true se l'ora di sistema corrente si trova all'interno dell'intervallo specificato dai parametri giorno1, giorno2, e GMT. È richiesto solo il primo parametro. Il parametro GMT stabilisce che l'ora debba essere considerata in base all'ora di Greenwich (GMT, Greenwich Mean Time) anziché in base al fuso orario locale.