}
else {
return “DIRECT”;
}
}
如果你习惯在下班后将笔记本带回家中的话myIpAddress函数将会十分有用,示例中实现的作用是当本机ip为192.168.0.254的时候就使用127.0.0.1:80这个代理,否则直接连接。
随机选择代理
function FindProxyForURL(url,host)
{
return randomProxy();
}
function randomProxy()
{
switch( Math.floor( Math.random() * 5 ) )
{
case 0:
return “PROXY proxy1:80″;
break;
case 1:
return “PROXY proxy2:80″;
break;
case 2:
return “PROXY proxy3:80″;
break;
case 3:
return “PROXY proxy4:80″;
break;
case 4:
return “PROXY proxy5:80″;
break;
}
}
这个示例中用了一个js中常见的随机数选择方法实现了在5个代理服务器中随机选择,这条函数的作者用意大概是平衡服务器使用量,但更重要是的是给我们打开了一个思路,让一些常见的js函数加入到PAC文件中或许能写出一些精彩有趣的函数来。
可用函数
以下列举的是可用于FindProxyForURL()函数体中的条件函数,这些函数的具体用法如果大家感兴趣请查阅互联网,这里就不详细介绍了:
基于主机名的函数:
isPlainHostName() dnsDomainIs() localHostOrDomainIs() isResolvable() isInNet()
相关的实用程序函数:
dnsResolve() myIpAddress() dnsDomainLevels()
基于URL/主机名的条件:
shExpMatch()
基于时间的条件:
weekdayRange() dateRange() timeRange() isPlainHostName(host)
PAC辅助函数功能:
dnsDomainIs(host, domain):
如果主机是指定域的一部分ie代理脚本,否则返回false,则返回true。
isInNet(hostname, Resolves the hostname and subnet IP, subnet mask) :
sInNet(主机名,解决了主机和子网的IP地址,子网掩码)返回true,如果是子网内的主机名
指定IP地址和子网掩码,否则返回false。
isPlainHostName(host):
isPlainHostName(主机)返回true卡盟,如果没有点中的主机名,否则返回false。
isResolvable(host):
isResolvable(主机)Internet Explorer尝试解析主机名的DNS,如果成功,则返回true,否则返回false。
localHostOrDomainIs:
localHostOrDomainIs返回true,如果主机匹配的主机部分(主机,域)的域,或者如果主机匹配的主机和域的域部分,否则为false。(仅在本地域中的URL)。
dnsDomainLevels(host):
返回点的数量的主机名。
dnsResolve(host):
dnsResolve(主机)返回一个字符串,其中包含指定的主机的IP地址。
myIPAddress( ):
myIPAddress()返回一个字符串,其中包含了本地计算机的IP地址。
shExpMatch(url, shexp):
所提供的URL,如果符合指定的shell表达,shExpMatch(URL,shexp)返回true,否则返回false。
dateRange(parmList):
如果当前日期在指定日期parmList,则返回true,否则返回false。
timeRange(parmList):
如果当前时间在parmList指定的时间范围内,返回true,否则返回false。
weekdayRange(parmList):
如果今天是在日的一周中指定的parmListie代理脚本,则返回true,,否则返回false。
来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!