====== Примеры 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"; }