2009年9月11日金曜日

真偽判定(1)ーホスト名を判定する関数

 条件判定をするときに、基準とする指標としてあらかじめ用意された関数があります。大きく分けると以下のように分類できます。
  • ホスト名
  • IPアドレス
  • URL
  • 日時
 ここでは、ホスト名の判定について取り上げます。


■dnsDomainIs(host, domain)

 この関数は、アクセスしようとするURLのホスト名が、特定のドメイン名から委譲されたホストであるか(と一致しているか)を判定することができます。

例:
host = www.example.com のとき、

dnsDomainIs(host, ".com") は真を返します。
dnsDomainIs(host, ".org") は偽を返します。

 hostはURLである必要があり、ポート番号は取り除かれます。


localHostOrDomainIs(host, hostdom)

 この関数は、ホスト名もしくはドメイン名が、指定したFQDNと一致するかどうかの判定ができます。

例:
localHostOrDomainIs("www", "www.example.com") は真を返します。
localHostOrDomainIs("mail", "www.mail.example.com") は偽を返します。
localHostOrDomainIs("www.example.com", "www.example.com") は真を返します。
localHostOrDomainIs("mail.example.com", "www.example.com") は偽を返します。

 hostはURLである必要があり、ポート番号は取り除かれます。


isPlainHostName(host)

 この関数は、Windows OSでの「サッフィックス」に頼って、FQDNではないURLでアクセスしているかどうかの判定に用いることができます。

例:
isPlainHostName("www") は真を返します。
isPlainHostName("www.example.com") は偽を返します。

 hostはURLである必要があり、ポート番号は取り除かれます。hostがFQDNでなければ真を返します。正確には、URLのホスト名の部分に"."(ドット)が1文字以上含まれていると偽を返す関数です。

dnsDomainLevels(host)
 使用頻度として必ずしも高いと言えそうにありませんが、URLのドメイン名についてレベルの数を調べることができます。"."(ドット)の数を返します。