IE局域网设置代理的自动配置脚本介绍 (2)

上传人:平*** 文档编号:11920047 上传时间:2017-10-15 格式:DOCX 页数:11 大小:32.78KB
返回 下载 相关 举报
IE局域网设置代理的自动配置脚本介绍 (2)_第1页
第1页 / 共11页
IE局域网设置代理的自动配置脚本介绍 (2)_第2页
第2页 / 共11页
IE局域网设置代理的自动配置脚本介绍 (2)_第3页
第3页 / 共11页
IE局域网设置代理的自动配置脚本介绍 (2)_第4页
第4页 / 共11页
IE局域网设置代理的自动配置脚本介绍 (2)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《IE局域网设置代理的自动配置脚本介绍 (2)》由会员分享,可在线阅读,更多相关《IE局域网设置代理的自动配置脚本介绍 (2)(11页珍藏版)》请在金锄头文库上搜索。

1、IE 局域网设置代理的自动配置脚本介绍如果上班是使用代理上网,再家不使用,天天调太麻烦,可通过代理自动配置脚本 Proxy Auto-Config File 来控制用户通访问 internet。只要使用该文档编写脚本来实现,该脚本可以根据条件使用指定的代理。控制的范围有:使用代理或不使用代理;使用哪个代理;使用哪种类型的代理,类型包括:HTTP、HTTPS、FTP、SOCK;控制的方式有:根据客户端【本地】的 IP 地址来控制;根据访问的服务端【访问的主机服务器】IP 地址来控制;根据访问的日期和时间来控制;本文内容包括:常用脚本如何在 IE 中设置?脚本语法介绍1 常用脚本1.1 根据客户端

2、网段选择代理function FindProxyForURL(url, host)/*如何客户端 IP 地址段在 192.168.0.0 到 192.168.0.255,使用 HTTP 代理 192.168.0.1:80*/*如何客户端 IP 地址段在 192.168.1.0 到 192.168.1.255,使用 HTTP 代理 192.168.0.1:80*/*其它的直接访问 */if ( shExpMatch(url, http:/* ) &isInNet(myIpAddress(),192.168.0.0,255.255.255.0)return PROXY 192.168.0.1:80

3、;else if ( shExpMatch(url, http:/* ) &isInNet(myIpAddress(),192.168.1.0,255.255.255.0)return PROXY 192.168.1.1:80;elsereturn DIRECT;1.2 根据访问的服务器选择代理function FindProxyForURL(url, host)/* 如果访问的服务器网段为 10.0.0.0 至 10.255.255.255或者 访问本地 127.0.0.1 , 直接访问*/* 其它的按顺序使用两个代理 */if ( isInNet(host, 10.0.0.0, 255.0

4、.0.0) |isInNet(host, 127.0.0.1, 255.255.255.255) )return DIRECT;else return PROXY 192.168.0.1:80; PROXY 92.168.1.1:80;1.3 根据时间选择代理function FindProxyForURL(url, host)/* 如果是上班时间【周一到周五的 9 点到 17 点】使用代理,其它情况直接访问*/if ( weekdayRange(MON, FRI) &timerange(9, 17) )return PROXY 192.168.0.1:80; PROXY 92.168.1.1

5、:80;else return DIRECT;2 如何在 IE 中设置?如果您的 PAC 文件已经没有错误,您可以在 IE 中设置来使用该 PAC 文件。具体做法如下:1. 打开 IE,在“工具”菜单中选择“Internet 选项” 。2. 点击“连接” , “局域网设置” 。3. 选择“使用自动配置脚本” ,并输入脚本的位置,比如:file:/D:setDatpac 设置代理脚本pac-time.js3 脚本语法介绍3.1 主函数如何编写 PAC 文件呢,首先必须定义一个主函数 FindProxyForURL,格式如下:function FindProxyForURL(url, host).

6、浏览器在访问每个 url 的时候都会调用该函数:ret = FindProxyForURL(url, host);函数中的参数:url 是浏览器访问的完整 url 地址,例如http:/openattitude.irixs.org/http:/ 是从完整 url 中截取的子字串,内容是从:/开始到下面第一个/或者:中间的部分,以上面 url 为例分别为192.168.1.1我们来仔细看一下第三个例子,host 字段中不包含端口 8000。如果有需要,端口号可以从 url 字段中提取。ret 是字符串变量,根据 FindProxyForURL()返回值返回单个字符串。如果返回NULL,即返回空字

7、符串,则浏览器不会使用任何代理,这样浏览器将无法打开网页。返回值可以是下列三种结构块的任意组合,每个不同的块之间用分号分割。DIRECT - 不调用代理,直接连接PROXY host:port - 调用指定代理(host:port)SOCKS host:port - 调用指定 SOCKS 代理(host:port)如果是选用由分号分割的多块设置,按照从左向右,最左边的代理会被最优先调用,除非浏览器无法成功和 proxy 建立连接,那么下一个配置就会被调用。如果浏览器遇到不可用的代理服务器,浏览器将在 30 分钟后自动重试先前无响应的代理服务器,一个小时后会再次进行尝试,依此类推,每次间隔时间为

8、 30 分钟。这意味着,如果暂时关闭代理服务器,客户机至多在其重新启动后 30 分钟便会重新开始使用该代理服务器。如果所有代理服务器均停用且未指定 DIRECT 返回值,浏览器将询问用户是否暂时忽略代理服务器而尝试直接进行连接。Navigator 将询问是否应在 20 分钟后重试代理服务器,接着过 20 分钟会再次询问,依此类推,每次间隔时间为 20 分钟。举例PROXY :8080; PROXY :8081; DIRECT3.2 条件函数下面是可用于 FindProxyForURL()函数体中的条件函数:基于主机名的函数:isPlainHostName()dnsDomainIs()local

9、HostOrDomainIs()isResolvable()isInNet()时间条件函数:weekdayRange()dateRange()timeRange()实用条件函数:dnsResolve()myIpAddress()dnsDomainLevels()shExpMatch()4 基于主机名的函数4.1 isPlainHostName(host)判断访问的是否为本地主机host 是不包含端口号的,url 中的主机名(下同) 。如果主机名中不包含域名则返回true。如:isPlainHostName(www) 返回 true.isPlainHostName() 返回 false.举例:h

10、ttp:/myservername/ 的方式访问,如果是本地主机直接连接,否则使用代理function FindProxyForURL(url, host)if (isPlainHostName(host) return DIRECT;elsereturn PROXY proxy:80;4.2 dnsDomainIs(hostname, domain)domain 用于和 hostname 进行比较的域名。如果 hostname 的域名和 domain 的值相匹配则返回 true。如:dnsDomainIs(, ) 返回 true.dnsDomainIs(www, ) 返回 false.dns

11、DomainIs(, ) 返回 false.举例:见下一函数4.3 localHostOrDomainIs(hostname, hostdom)hostdom 是要进行匹配的指定的主机名。如果 hostname 和指定的 hostdom 相匹配,或者在 hostname 中没有指定要进行匹配的域名部分,函数返回 true。如:localHostOrDomainIs(www. , www. ) 返回 true (exact match).localHostOrDomainIs(www, www. ) 返回 true (hostname match, domain not specified).l

12、ocalHostOrDomainIs(, www. ) 返回 false (domain name mismatch).localHostOrDomainIs(, www. ) 返回 false (hostname mismatch).举例:如果属于 域的主机名,而域名不是 和 的直接连接,否则使用代理访问。function FindProxyForURL(url, host)if (isPlainHostName(host) | dnsDomainIs(host, ) &!localHostOrDomainIs(host, ) &!localHostOrDomainIs(host, )re

13、turn DIRECT;elsereturn PROXY proxy:80;4.4 isResolvable(host)如果成功解析主机名则返回 true。如:isResolvable() 返回 true (除非由于防火墙或某些其他原因导致DNS 无法解析).isResolvable(bogus.domain.foobar) 返回 false.举例:主机名能否被 dns 服务器解析,如果能直接访问,否则就通过代理访问。function FindProxyForURL(url, host)if (isResolvable(host)return DIRECT;elsereturn PROXY p

14、roxy:80;4.5 isInNet(host, pattern, mask)host 在这里可以是 DNS 主机名,比如 ,也可以是 IP 地址。如果传递的是主机名,此函数会将其解析成 IP 地址。pattern 是点分隔格式的 IP 地址模式。mask 是 IP 地址模式掩码,用于确定应对 IP 地址的哪些部分进行匹配。值为 0 表示忽略;255 表示匹配。如果主机的 IP 地址与指定的 IP 地址模式匹配,则返回 true。如:isInNet(host, 198.95.249.79, 255.255.255.255) 如果 host 的 IP 地址为198.95.249.79 则返回 true.isInNet(host, 198.95.0.0, 255.255.0.0) 如果 host 的 IP 地址为 198.95.*.*则返回 true.举例:主机 IP 是否在某个子网内,如果是就直接访问,否则就通过代理,例子演示访问清华IP 段的主页不用代理。function FindProxyForURL(url, host)if (isInNet(host, 166.111.0.0, 255.255.0.0)return

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号