【iOS版アプリ】不具合のお知らせ

URLからドメイン名を抽出するよいライブラリはないでしょうか?

(例)
http://www.domain.co.jp/~username/dafult.htm
         ↓
domain.co.jp

正規表現で簡単に出来そうですが、
.jp
.co.jp
.co.uk
.com.uk
等、一筋縄ではいかないようです。

どうかよろしくお願い致します。

gooドクター

A 回答 (5件)

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方式でも完全ではないようです。
恐らく現時点では、まともな方法やライブラリは存在しないのだと思います。

#役に立たない情報でスミマセン。単なる参考情報ということで。。。
    • good
    • 0
この回答へのお礼

ありがとうございます。
とても参考になりました。

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

お礼日時:2006/12/26 01:30

裏技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アドレスがあり, その他にはない場合どれを「ドメイン名」にします?

この回答への補足

みなさん、ありがとうございます。

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

補足日時:2006/12/26 05:29
    • good
    • 0
この回答へのお礼

今回は、あくまで
http://www.value-domain.com/regdom.php
のようなサイトで、取得可能なものをドメインとしています。

学術的な定義はあまり意味がありません。

お礼日時:2006/12/26 01:36

#1です。


質問をよく読んでいませんでした、ごめんなさい。(^^;
ドメインの部分のみですね。それは確かに難しいですね。
    • good
    • 0
この回答へのお礼

はい。
そうなんです。
ありがとうございます。

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

ありがとうございます。

お礼日時:2006/12/26 01:31

(@url) = split("\/",$url);


print $url[2];
    • good
    • 0

$url = '

http://www.domain.co.jp/~username/dafult.htm';

if($url =~ m|//(.+?)/|){
print $1;
}

これでどうでしょう。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング