安全 : Cisco IronPort Web 安全设备

什么是代理Pac文件,并且有没有任何示例?

2016 年 10 月 27 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈

目录

贡献用Khoa安格纽和Siddharth Rajpathak, Cisco TAC工程师。

问题:

什么是代理Pac文件,并且有没有任何示例?

环境:思科Web安全工具

注意:此知识库文章参考没有维护也思科不支持的软件。  信息被提供作为礼貌为您的便利。对于进一步协助,请联系软件供应商。

参考链路:Javascript或JScript自动代理示例文件


Javascript或JScript自动代理示例文件

以下脚本提供示例‘.pac’文件如何可能用于指定自动代理URL。要使用这些功能,您必须更改代理名称、端口号和IP地址。

  1. isInNetisResolvablednsResolve功能查询DNS服务器
  2. 对对象模型对象、属性或者方法的参考造成代理自动配置文件静静地出故障。例如,参考window.open (...),警报(...)和密码(...)全部在Internet Explorer造成代理自动配置文件失效。

示例 1:本地主机连接直接,其他通过代理连接

看到以下的功能检验主机名是否是本地主机,并且,如果是,连接是否直接。如果主机名不是本地主机,连接是通过代理(代理)。
功能FindProxyForURL (URL,主机)
 {
 如果(isPlainHostName(host))
 返回“处理”;
 
 返回“代理proxy:80";
 }

看到isPlainHostName的功能检验是否有在主机名的任何小点。如果那样,它返回错误;否则,功能返回真。

注意:对于对本地网络服务器的直接连接,域或子网匹配也许也是需要的。使用主机名,不是对本地网络服务器的所有的请求完成

示例 2:主机在防火墙里面连接直接,服务器通过代理连接的外部本地

看到以下的功能检验主机是否作为“无格式”特定的域(.company.com)的主机名(含义域名没有包括)或部分,但是主机名不是www或主页。
功能FindProxyForURL (URL,主机)
 {
 如果((isPlainHostName(host)||
 dnsDomainIs (主机, “.company.com”))&&
 ! localHostOrDomainIs (主机, “www.company.com ") &&
 ! localHostOrDoaminIs (主机, “home.company.com”))
 返回“处理”;
 
 返回“代理proxy:80";
 }


注意:

  • localHostOrDomainIs功能为在本地域的URL仅被执行。
  • 如果主机名的域匹配给的域dnsDomainIs作用真的回归。

示例 3:如果主机可解决,请连接直接。使用代理,否则请连接。

以下功能要求DNS服务器设法解决主机名通过对它。如果它能,则直接连接被建立。如果它不能,联系通过代理被建立。当内部DNS服务器用于解决所有内部主机名时,这是有用的。
功能FindProxyForURL (URL,主机)
 {
 如果(isResolvable(host))
 返回“处理”;
 
 返回“代理proxy:80";
 }

请参阅关于isResolvable功能的注意在页顶部。


示例 4:如果主机在指定的子网,请连接直接。使用代理,否则请连接。

以下功能一个给的IP地址模式和掩码与主机名比较。这是有用的,如果子网的某些主机应该直接地连接使用代理,并且其他应该连接。
功能FindProxyForURL (URL,主机)
 {
 如果(isInNet (主机, "999.99.9.9", "255.0.255.0"))
 返回“处理”;
 
 返回“代理proxy:80";
 }

请参阅关于isInNet的注意作用在页顶部。

isInNet (主机、模式,掩码)功能返回真,如果主机IP地址匹配指定的模式。掩码指示匹配的IP地址的哪个部分(255=match, 0=ignore)。


示例 5:确定根据主机域的连接类型

如果主机是本地,以下功能指定直接连接。如果主机不是本地,此功能确定哪个代理使用根据主机域。如果主机域名是其中一个代理选择的,标准这是有用的。
功能FindProxyForURL (URL,主机)
 {
 如果(isPlainHostName(host))
 返回“处理”;
 如果(shExpMatch (主机, “*.com”))
 返回“代理comproxy:80";
 如果(shExpMatch (主机, “*.edu”))
 返回“代理eduproxy:80";
 
 返回“代理代理”;
 }

shExpMatch (str, shexp)功能返回真使用shell表达式模式,如果str匹配shexp。


示例 6:确定根据协议的连接类型使用

以下功能解压缩使用的协议并且相应地做代理选择。如果匹配在协议没有被做,则直接连接被建立。如果使用的协议是其中一个代理选择的,标准这是有用的。
功能FindProxyForURL (URL,主机)
 {
 如果(url.substring(0, 5) == “http :") {
 返回“代理proxy:80";
 }
 如果(url.substring(0, 4) == “ftp: ") {
 返回“代理fproxy:80";
 }
 如果(url.substring(0, 7) == “Gopher :") {
 返回“代理gproxy”;
 }
 如果(url.substring(0, 6) == “https :") {
 返回“代理secproxy:8080";
 }
 {
 返回“处理”;
 }
 }

子链功能解压缩字符指定的编号从字符串的。


示例7 :通过检查确定代理设置看到主机名是否匹配IP地址

以下功能通过翻译主机名成IP地址和比较它做一代理选择与指定的字符串。
功能FindProxyForURL (URL,主机)
 {
 如果(dnsResolve(host) == "999.99.99.999") {//= http://proxy
 返回“代理secproxy:8080";
 }
 {
 返回“代理proxy:80";
 }
 }

请参阅关于dnsResolve的注意作用在页顶部。

示例8 :如果主机IP匹配指定的IP,请通过代理连接,连接直接

以下功能是另一个方式做根据指定IP地址的代理选择。此示例,不同于示例7,使用函数调用明确地获得数字IP地址(示例7使用dnsResolve功能翻译主机名成数字IP地址)。
功能FindProxyForURL (URL,主机)
 {
 如果(myIpAddress() == "999.99.999.99") {
 返回“代理proxy:80";
 }
 {
 返回“处理”;
 }
 }

myIpAddress作用回归IP地址(在整数点格式)的主机浏览器运作。

示例9 :如果有在主机名的任何小点,使用代理,请连接。否则,请连接直接。

看到多少个的以下功能检验小点在主机名。如果有在主机名的任何小点,请通过代理建立联系。如果没有在主机名的小点,请建立直接连接。这是另一个方式确定根据主机名特性的连接类型。
功能FindProxyForURL (URL,主机)
 {
 如果(dnsDomainLevels(host) > 0) {//,如果小点数量在主机的> 0
 返回“代理proxy:80";
 }
 返回“处理”;
 }

dnsDomainLevels作用回归每整数相等与小点数量在主机名的。


示例10 :指定星期通过代理连接,其他天连接直接

以下功能通过指定为代理是适当的星期确定连接类型。不下跌在这些参数之间的几天使用直接连接。此功能可能是有用的在您也许要使用代理的情况,当流量是大量的和允许直接连接时,当流量是灯时。
功能FindProxyForURL (URL,主机)
 {
 如果(weekdayRange (“星期三”, “SAT”, “GMT”))
 返回“代理proxy:80";
 
 返回“处理”;
 }

weekdayRange(day1 [,day2] [,GMT])功能返回当前系统时间是否属于参数指定的范围day1、day2和GMT。仅第一个参数要求。GMT参数假定时间值在格林尼治标准时间而不是本地时区。


示例11 :与简单计算功能的负载均衡

功能FindProxyForURL (URL,主机) {
回归randomProxy();
}
功能randomProxy()
{
交换机(Math.floor (Math.random () *2))
{
案例0 :返回“代理1.1.1.1:3128;代理2.2.2.2;直接的代理; "”
案例1 :返回“代理2.2.2.2:3128;代理1.1.1.1;直接的代理; "”
}
}

您看到案件也实现故障切换,万一一个代理不是可用的。



Document ID: 118076