Proxy aut-config(PAC)配置
5230 ワード
Proxy aut-configは、PACと略称して、ブラウザがどのように自動的に適切なプロキシサーバを選択するかを定義してウェブサイトを訪問するものです。したがって、PACファイルを使って代理を定義すれば、簡単に実現できます。
[リスト]
[*]プロキシのダイナミックな切り替えを実現する(fail-over)
[*]異なるurlやip rangeに対して、異なるserverを配置し、ネットワークアクセス速度を速める。
[*]proxyに対して、負荷バランスを実現することができます。
[/リスト]
PACファイルは少なくともJavaScript関数を定義したテキストファイルです。この関数はFindProxyFor URLです。2つのパラメータがあります。urlはオブジェクトのURLです。hostはこのURLで指すホスト名です。戻り値はプロキシの構成です。
[b]PAC関数[/b]
PAC構成は一連の内蔵関数を使用することができます。これらの関数は最初にNetscape社が出した仕様に由来します。Netscapeは技術にとって偉大な会社です。残念ながら、その商業化能力です。
[リスト]
[*]dns DomainIs
Everaluates hostnamens and returns true if hostnames match.Used manly to match and exception individual hostnames.
Will atempt to match hostname or URL to a specified shell expression、and returns true if matched.
This function evaluates the IP address of a hostname,and if within a specified subnet returns true.If a hostname is passed the function will reve the hostname to an IP address.
Returns the IP address of the host machine.
Resoloves hostnames to an IP address.This function can be used to reduce the number of DNS lookup.
This function will return true if the hostname containsのdots、e.g.http://intranet
Useful when appining exceptions for internal websites、e.g.may not require recoreolution of a hostname to IP address to determine local.
Evaaluates hostname and only returns true if exact hostname match is found.
attempts to reolve a hostname to an IP address and returns true if.WARNING–This may cause a browser to temporar hang if a doman’t reolvable.
This function returns the number of DNS domail levels(number of dots)in the hostname.Can be used to exception internal websites which ust DNS names,e.g.http://intranet
Allows rules to be time based,e.g.only return a proxy during specific days.
Allows rules to be time based,e.g.only return a proxy during specific moths.
Allows rules to be time based,e.g.only return a proxy during specific houss.
The alert()function is not speciifed in the orororororinal PAC speciiication,although support forthisisisisincludd in Internet Explororr andFirefox.The function can be be used to outputthe value of a variabababababababablblblbleeeeeeeablblblaaaablblblbleeeeeeeeeaaaaaaaaaaaaaaablblblblsososorerererererererererererererererererererererereaaaaaaaaaaaaaaaa
[b]注意[/b]
FirefoxまたはInternet ExplorerはシステムデフォルトコードのPACファイルだけをサポートしています。UnicodeコードのPACファイルはサポートされていませんので、PACファイルを作成する時はファイルの符号化方式に注意してください。
[リスト]
[*]プロキシのダイナミックな切り替えを実現する(fail-over)
[*]異なるurlやip rangeに対して、異なるserverを配置し、ネットワークアクセス速度を速める。
[*]proxyに対して、負荷バランスを実現することができます。
[/リスト]
PACファイルは少なくともJavaScript関数を定義したテキストファイルです。この関数はFindProxyFor URLです。2つのパラメータがあります。urlはオブジェクトのURLです。hostはこのURLで指すホスト名です。戻り値はプロキシの構成です。
function FindProxyForURL(url, host) {
return "PROXY proxy.example.com:8080; DIRECT";
}
この関数の戻り値は、プロキシproxy.example.comの8080ポートを介してすべてのページを優先的に取得することをブラウザに教えます。このプロキシが反応していない場合、ブラウザはプロキシを使用せずに直接アクセスします。複数のプロキシ間はセミコロン(;)で区切られます。[b]PAC関数[/b]
PAC構成は一連の内蔵関数を使用することができます。これらの関数は最初にNetscape社が出した仕様に由来します。Netscapeは技術にとって偉大な会社です。残念ながら、その商業化能力です。
[リスト]
[*]dns DomainIs
Everaluates hostnamens and returns true if hostnames match.Used manly to match and exception individual hostnames.
if (dnsDomainIs(host, ".google.com"))
return "DIRECT";
[*]shExpMatchWill atempt to match hostname or URL to a specified shell expression、and returns true if matched.
if (shExpMatch(url, "*.local"))
return "DIRECT";
if (shExpMatch(host, ".domain.com") ||
shExpMatch(url, "http://abcdomain.com/folder/*"))
return "DIRECT";
[*]isInNetThis function evaluates the IP address of a hostname,and if within a specified subnet returns true.If a hostname is passed the function will reve the hostname to an IP address.
if (isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0"))
return "DIRECT";
[*]myIpAddressReturns the IP address of the host machine.
if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
return "PROXY 10.10.5.1:8080";
[*]dnsResoliveResoloves hostnames to an IP address.This function can be used to reduce the number of DNS lookup.
if (isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0") ||
isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") ||
isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
return "DIRECT";
[*]isPlain HostNameThis function will return true if the hostname containsのdots、e.g.http://intranet
Useful when appining exceptions for internal websites、e.g.may not require recoreolution of a hostname to IP address to determine local.
if (isPlainHostName(host))
return "DIRECT";
[*]local HostOrDomainIsEvaaluates hostname and only returns true if exact hostname match is found.
if (localHostOrDomainIs(host, "www.google.com"))
return "DIRECT";
これはgoogle.comを含むことができますので、子供のdomain。
if (localHostOrDomainIs(host, ".google.com"))
return "DIRECT";
[*]is Resolavableattempts to reolve a hostname to an IP address and returns true if.WARNING–This may cause a browser to temporar hang if a doman’t reolvable.
if (isResolvable(host))
return "PROXY proxy1.example.com:8080";
[*]dns DomainLevelsThis function returns the number of DNS domail levels(number of dots)in the hostname.Can be used to exception internal websites which ust DNS names,e.g.http://intranet
if (dnsDomainLevels(host) > 0)
return "PROXY proxy1.example.com:8080";
else return "DIRECT";
[*]weekday RangeAllows rules to be time based,e.g.only return a proxy during specific days.
if (weekdayRange("MON", "FRI")) return "PROXY proxy1.example.com:8080";
else return "DIRECT";
[*]dateRangeAllows rules to be time based,e.g.only return a proxy during specific moths.
if (dateRange("JAN", "MAR")) return "PROXY proxy1.example.com:8080";
else return "DIRECT";
[*]timeRangeAllows rules to be time based,e.g.only return a proxy during specific houss.
if (timeRange(8, 18)) return "PROXY proxy1.example.com:8080";
else return "DIRECT";
[*]alertThe alert()function is not speciifed in the orororororinal PAC speciiication,although support forthisisisisincludd in Internet Explororr andFirefox.The function can be be used to outputthe value of a variabababababababablblblbleeeeeeeablblblaaaablblblbleeeeeeeeeaaaaaaaaaaaaaaablblblblsososorerererererererererererererererererererererereaaaaaaaaaaaaaaaa
resolved_host = dnsResolve(host);
alert(resolved_host);
[/リスト][b]注意[/b]
FirefoxまたはInternet ExplorerはシステムデフォルトコードのPACファイルだけをサポートしています。UnicodeコードのPACファイルはサポートされていませんので、PACファイルを作成する時はファイルの符号化方式に注意してください。