Содержание

Примеры wpad.dat

Мой wpad.dat ПУ51

Машинам компьютерного классы выдается dansguardian. Остальным просто наш прокси.

function FindProxyForURL(url, host) {
    var myip = myIpAddress();
    var octets = myip.split(".");
    var last_octet = parseInt(octets[3]);
 
    if((last_octet > 150) && (last_octet < 159)) {
        return "PROXY 192.168.0.254:8080";
    } else {
        if(isPlainHostName(host)
                || dnsDomainIs(host, "pu51.alx")
                || isInNet(host, "192.168.0.0", "255.255.255.0")) {
            return "DIRECT";
        } else {
            return "PROXY 192.168.0.254:3128";
        }
    }
 
} // END FindProxyForURL

Некоторая балансировка нагрузки

function FindProxyForURL(url, host) {
    var myip = myIpAddress();
    var my_addr_array = myip.split(".");
    var mysubnet = parseInt(my_addr_array[2]);
 
    if ((mysubnet >= 200) && (mysubnet < = 209)) {
        proxy = "PROXY execproxy.company.com:8000");
    }
    else {
        proxy = "PROXY proxy.company.com:8000";
    }
 
    return proxy;
}

Еще некоторая балансировка

function FindProxyForURL(url, host) {
    var myip = myIpAddress()
    var ipbits = myip.split(".")
    var myseg = parseInt(ipbits[3])
 
    if (myseg == Math.floor(myseg/2)*2) {
        // Для четных
        proxy = "PROXY p1.company.com:8080; PROXY p2.company.com:8080";
    }
    else {
        // Для не четных
        proxy = "PROXY p2.company.com:8080; PROXY p1.company.com:8080";
    }
 
    return proxy;
}

Отладка кода

function FindProxyForURL(url, host) {
	debugPAC = "PAC Debug Information\n";
	debugPAC += "-----------------------------------\n";
	debugPAC += "Machine IP: " + myIpAddress() + "\n";
	debugPAC += "Hostname: " + host + "\n";
 
	if(isResolvable(host)) {resolvableHost = "True"} else {resolvableHost = "False"};
 
	debugPAC += "Host Resolvable: " + resolvableHost + "\n";
	debugPAC += "Hostname IP: " + dnsResolve(host) + "\n";
 
	if (isPlainHostName(host)) {plainHost = "True"} else {plainHost = "False"};
 
	debugPAC += "Plain Hostname: " + plainHost + "\n";
	debugPAC += "Domain Levels: " + dnsDomainLevels(host) + "\n";
	debugPAC += "URL: " + url + "\n";
 
	// Protocol can only be determined by reading the entire URL.
	if (url.substring(0,5) == "http:") {protocol = "HTTP";} else
		if (url.substring(0,6) == "https:") {protocol = "HTTPS";} else
			if (url.substring(0,4) == "ftp:") {protocol = "FTP";}
				else {protocol = "Unknown";}
 
	debugPAC += "Protocol: " + protocol + "\n";
 
    // Reduce volume of alerts to a useable level, e.g. only alert on static text pages.
	if (!shExpMatch(url,"*.(js|xml|ico|gif|png|jpg|jpeg|css|swf)*")) {alert(debugPAC);}
 
	return "DIRECT";
}