アプリ版:「スタンプのみでお礼する」機能のリリースについて

ホスト名を取得して、表示させようと思っています。

アクセス者のホスト名(利用しているプロバイダ)を取得して、表示させると例えば「f937sfs.hogehoge.com」と言うようになります。

ドメイン名の前にいろいろと英数時の羅列が付くのですが、これをドメイン名のみ表示させるには、どのようにすれば良いでしょうか。
「f937sfs.hogehoge.com」
と言う表示ではなく、
「hogehoge.com」のみを表示したいと思っています。

御教授をお願い致します。

A 回答 (3件)

$host="f937sfs.hogehoge.com";


@separate =split(/\./,$host); #ピリオドでわける
shift(@separate); #先頭を捨てる
$domain = join('.', @separate);#ピリオドでくっつける
print "$domain\n";#hogehoge.comになる

ホスト名については、取得されているのでそれでいいと思います
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

お手数をおかけして、すみませんでした(ー_ー)
先程記述して頂いたスクリプトを追加結果、見事ドメイン名のみ表示させる事ができました。

とても助かりました。
ありがとうございました。

お礼日時:2004/11/09 19:00

ピリオドでsplitして最初を除きjoinしてはどうでしょう?

    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

大変申し訳ありません。
私はPerlの知識がほとんど皆無なので、基本のホスト名取得と表示くらいしかできません。
No1の回答を見て、自分でいろいろと触ってみましたが、ダメでした。

もし良ければホスト名の取得から表示方法までを、御教授して頂けますでしょうか。

現在はどこかのサイトに記載されていた方法を、そのまま下記のように記述しております。
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
if ($host eq "" || $host eq $addr) {
$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2) || $addr;
}
print "$host\n<br>";
print "$addr\n<br>";

ホスト名とIPアドレスを表示するようにしています。
ホスト名について、質問して頂いているように、ドメイン名のみを表示できるようにしたいと思っています。

お手数をおかけしますが、よろしくお願いします。

お礼日時:2004/11/09 18:04

 俺が使ってる方法は、まず正規表現でトップレベルドメインを削除して、



  $data = s/(com|net|org|co\.jp|ne.jp|...)$//;

 次にピリオドで分割された最後の文字列を取り出す方法です。

  $data = (split(/\./, $data))[-1];

 トップレベルドメインの一覧をズラーッと書かなきゃいけないから面倒ですけど(^^;
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

Perlの知識がほとんど皆無なので、自力でいろいろと試してみましたが、ダメでした。

もし良ければ、ホスト名の取得から表示方法までを御教授して頂けると嬉しく思います。

お手数をおかけしますが、よろしくお願いします。

お礼日時:2004/11/09 17:56

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