none
ASP.netでサイトの実行中のサーバーのドメイン名(ホスト名)を取得 RRS feed

  • 質問

  • ASP.netの開発環境でドメイン名を取得したいと思っています。

    http://www.test.com/test.html

    ではtest.comが取りたいと思っています。ですが、Request.Urlは使えません。

    ※Azureにアップした時にRequest.Urlで取得した値がポート番号などが入っていて、ローカルで確認した値と異なるため。

     

    ASP.netでドメイン名を取得する方法はありますでしょうか?

     

    どなたかご存知の方がいらっしゃたらお教え頂けないでしょうか。

    お願い致します。

    2010年12月14日 8:32

回答

  • Request.RawUrl だとブラウザのアドレスバーに書かれている文字列が取得できると思います。もしくはRequest.Url.OriginalStringでも。

    実は質問の内容がよくわかりませんでした。「※Azureにアップした時にRequest.Urlで取得した値がポート番号などが入っていて、ローカルで確認した値と異なるため。」ということは、アップする前のローカルのアドレスが欲しいのですか?
    # 「ローカルで確認した値と異なる」=ローカルで確認した値が欲しい、ですよね?!

    「使えません」ではなく、どんな値が入っていて、どんな値を期待しているのか書いた方が伝わりやすいかと思います。

    • 回答としてマーク 山本春海 2010年12月28日 2:19
    2010年12月14日 9:52
  • Request.Url.Host でホスト名が取得できますが、これではダメなんでしょうか?

    http://msdn.microsoft.com/ja-jp/library/system.web.httprequest.url.aspx

    http://msdn.microsoft.com/ja-jp/library/system.uri.host.aspx

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答としてマーク 山本春海 2010年12月28日 2:19
    2010年12月15日 1:36
  • www.test.com ではなく、 test.com ですか?

    もしそうなら、無理というのが答えになります。ホスト名からドメイン名を確実に抽出する方法というものはありません。各ブラウザもこの点には苦慮しているようで、「他ドメイン向けのクッキーは受け取らない」という判断の仕方がブラウザごとにまちまちになっていたりします。

    • 回答としてマーク 山本春海 2010年12月28日 2:19
    2010年12月15日 3:51

すべての返信

  • Request.RawUrl だとブラウザのアドレスバーに書かれている文字列が取得できると思います。もしくはRequest.Url.OriginalStringでも。

    実は質問の内容がよくわかりませんでした。「※Azureにアップした時にRequest.Urlで取得した値がポート番号などが入っていて、ローカルで確認した値と異なるため。」ということは、アップする前のローカルのアドレスが欲しいのですか?
    # 「ローカルで確認した値と異なる」=ローカルで確認した値が欲しい、ですよね?!

    「使えません」ではなく、どんな値が入っていて、どんな値を期待しているのか書いた方が伝わりやすいかと思います。

    • 回答としてマーク 山本春海 2010年12月28日 2:19
    2010年12月14日 9:52
  • ご指摘ありがとうございます。

    取得したい値はwww.test.com/test.htmlというurlがあったら

    test.comというドメインを取りたいのです。

     

    ですが、方法がまだわかっていません。。。

     

    2010年12月15日 1:02
  • Request.Url.Host でホスト名が取得できますが、これではダメなんでしょうか?

    http://msdn.microsoft.com/ja-jp/library/system.web.httprequest.url.aspx

    http://msdn.microsoft.com/ja-jp/library/system.uri.host.aspx

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答としてマーク 山本春海 2010年12月28日 2:19
    2010年12月15日 1:36
  • www.test.com ではなく、 test.com ですか?

    もしそうなら、無理というのが答えになります。ホスト名からドメイン名を確実に抽出する方法というものはありません。各ブラウザもこの点には苦慮しているようで、「他ドメイン向けのクッキーは受け取らない」という判断の仕方がブラウザごとにまちまちになっていたりします。

    • 回答としてマーク 山本春海 2010年12月28日 2:19
    2010年12月15日 3:51
  • 通じなかったのかなぁ…。

    1. どのような実装をして
    2. ローカルで確認した時にはどのような値になって
    3. Azureにアップした時にはどのような値になって
    4. でも期待する値はどのような値

    なのかを書かないと伝わらないです。

    はっきり書かれているのは4.がtest.comだということ。その他では1.はRequest.Urlを使ったのかな。2.は(動作に納得してアップしたのだろうから)test.comが得られたのかな。3.は依然として不明、少なくともtest.comではなかったらしい。

    2010年12月15日 9:16