• ベストアンサー

URLからドメイン名の抽出する

URLからドメイン名を抽出するよいライブラリはないでしょうか? (例) http://www.domain.co.jp/~username/dafult.htm          ↓ domain.co.jp 正規表現で簡単に出来そうですが、 .jp .co.jp .co.uk .com.uk 等、一筋縄ではいかないようです。 どうかよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Operaブラウザでは、 jpをDNSでひく ⇒ IPアドレスなし co.jpをDNSでひく ⇒ IPアドレスなし domain.co.jpをDNSでひく ⇒ IPアドレス有り みたいな方式で、ドメイン(domain.co.jp)を抽出しているようです。 IEやFirefoxでは、もっとテキトーな方法らしいです。ですので、 Set-Cookie: a=b; domain=com.uk のようなcookieをブラウザが食べてしまう問題があります(cookie monsterと呼ばれる問題)。 >一筋縄ではいかないようです。 その通りです。 Opera方式でも完全ではないようです。 恐らく現時点では、まともな方法やライブラリは存在しないのだと思います。 #役に立たない情報でスミマセン。単なる参考情報ということで。。。

yn001ster
質問者

お礼

ありがとうございます。 とても参考になりました。 やはりDNSを引くか、辞書を用意するしかないのですかね。 ありがとうございます。

その他の回答 (4)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

裏技1: 「.」は必ずドメイン名である (ルートドメインだから無意味だけど). 裏技2: DNS的にはドメイン名しかない (ホスト名もドメイン名の一種) とか聞いたことがあるので, ホスト名を返してしまう. まあ, いずれにしても「ドメイン名」が何を意味するのかがわからないとなんともならないんですが. ところで http://www.a.example.co.jp/test/ という URL に対して www.a.example.co.jp, a.example.co.jp, example.co.jp の 3つに対して IPアドレスがあり, その他にはない場合どれを「ドメイン名」にします?

yn001ster
質問者

お礼

今回は、あくまで http://www.value-domain.com/regdom.php のようなサイトで、取得可能なものをドメインとしています。 学術的な定義はあまり意味がありません。

yn001ster
質問者

補足

みなさん、ありがとうございます。 簡易的に辞書を用いて対応しようと思います。 ありがとうございました。

  • venzou
  • ベストアンサー率71% (311/435)
回答No.4

#1です。 質問をよく読んでいませんでした、ごめんなさい。(^^; ドメインの部分のみですね。それは確かに難しいですね。

yn001ster
質問者

お礼

はい。 そうなんです。 ありがとうございます。 みんなが必要としそうなので、 「必要なものはすでに発明されている」 という思想の元、情報を探しているのですが、 なかなかないのかもしれませんね。 ありがとうございます。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

(@url) = split("\/",$url); print $url[2];

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

$url = 'http://www.domain.co.jp/~username/dafult.htm'; if($url =~ m|//(.+?)/|){ print $1; } これでどうでしょう。

関連するQ&A