🐕

pacファイルの関数

2022/04/20に公開約2,000字

備忘録。ほぼ自分用メモ。
間違っていたらコメントください。

FQDN:www.mozilla.org
ホスト名:www
ドメイン名:.mozilla.org

isPlainHostName(host)

ドメイン名を含むか。
含まない時にtrueです。
含まない = true, 含む = false

isPlainHostName("www.mozilla.org") // false(ドメイン名がある)
isPlainHostName("localhost") // true(ドメイン名がない)

この関数は、渡されたアドレスがローカルホストであるかどうかをチェックするのに有効です。

dnsDomainIs(host, domain)

ドメイン名が合っているか。
一致 = true, 不一致 = false

dnsDomainIs("www.mozilla.org", ".mozilla.org") // true(ドメイン名が合っている)
dnsDomainIs("www", ".mozilla.org") // false(そもそもドメイン名がない)

localHostOrDomainIs(host, hostdom)

基本的にホスト名が合っているとtrueを返します。
3つ目は少し違う

localHostOrDomainIs("www.mozilla.org" , "www.mozilla.org") // true(ホスト名が合っている)
localHostOrDomainIs("www"             , "www.mozilla.org") // true(ホスト名が合っている)
localHostOrDomainIs("www.google.com"  , "www.mozilla.org") // false(ホスト名は合っているが、ドメイン名がある場合にはそれも合っていないとfalseになってしまう)
localHostOrDomainIs("home.mozilla.org", "www.mozilla.org") // false(ホスト名が合っていない)

どういう時に使うのか分かりません。
教えてください🙏

isResolvable(host)

名前解決を試みます。成功すれば true を返します。
成功 = true, 失敗 = false

isResolvable("www.mozilla.org") // true

isInNet(host, pattern, mask)

名前解決し、そのipをパターンと比較します。第三引数でマスクを指定します。

isInNet("www.mozilla.org", "999.99.9.9", "255.0.255.0")

(マスクの説明)
この関数は まず第一引数の名前解決をします。
ここでは、『999.88.9.8』が返ってきたとしましょう。

そしてそれと第二引数の一致をみます。
つまり、『999.88.9.8』と『999.99.9.9』の一致をみるという事。
でも、見てわかる通り違いますよね。

しかし、この条件はtrueになります。
何故でしょう。

第三引数を見てください。これをマスクといいます。
『255.0.255.0』

ではこれの「255をtrue」、「0をfalse」と考えてみましょう。

『999. 88. 9. 8』
『999. 99. 9. 9』
『true. false. true. false』

trueになっている行、1番目と3番目さえあっていればtrueを返す。ということですね。

ちなみにマスクではこんなこともできますがここでは割愛します。
『255.0.240.0』

shExpMatch(str, shexp)

str が、シェルの表現パターンを使用して shexp に一致する場合は true を返します。
一致 = true, 不一致 = false

shExpMatch("http://www.mozilla.org/people/index.html", ".*/people/.*") // true
shExpMatch("http://www.mozilla.org/people/yourpage/index.html", ".*/mypage/.*") // false

myIpAddress()

ブラウザが実行されているホストの IP アドレス(整数とドットの形式)を返します。

myIpAddress()

読んでくれてありがとう😭
分かりにくい所、間違っている所があれば遠慮なくご指摘ください

Discussion

ログインするとコメントできます