URL से होस्ट डोमेन प्राप्त करें?


143

स्ट्रिंग URL से होस्ट डोमेन कैसे प्राप्त करें?

GetDomain में 1 इनपुट "URL", 1 आउटपुट "डोमेन" है

उदाहरण 1

INPUT: http://support.domain.com/default.aspx?id=12345
OUTPUT: support.domain.com

example2

INPUT: http://www.domain.com/default.aspx?id=12345
OUTPUT: www.domain.com

Example3

INPUT: http://localhost/default.aspx?id=12345
OUTPUT: localhost

ऐसा लगता है कि प्रश्न URL में होस्ट के लिए है, और होस्ट के डोमेन के लिए नहीं है , जब तक कि मैं "होस्ट डोमेन" को पूरी तरह से गलत नहीं समझता (केवल "होस्ट" के विपरीत)। तथ्य यह है कि उत्तर उरी की तर्ज पर है। इस तरह के समर्थन से प्रश्न को बेहतर प्रतिबिंबित करने के लिए अद्यतन किया जाना चाहिए और प्रश्न में स्वीकृत उदाहरण और स्वीकृत उत्तर के साथ संरेखित करना चाहिए।
NoOneSpecial

जवाबों:


266

Url को होस्ट करने के लिए आप Requestऑब्जेक्ट या Uriऑब्जेक्ट का उपयोग कर सकते हैं ।

Request.Url का उपयोग करना

string host = Request.Url.Host;

उड़ी का उपयोग करना

Uri myUri = new Uri("http://www.contoso.com:8080/");   
string host = myUri.Host;  // host is "www.contoso.com"

2
नमस्ते, मैं Request.Url का उपयोग करना चाहता था, लेकिन विजुअल स्टूडियो अभी भी प्रतीक 'अनुरोध' को हल नहीं कर सकता है। मुझे नहीं पता कि क्या गलत है। मैं विज़ुअल स्टूडियो 2010 और नेट फ्रेमवर्क 4.0 का उपयोग करता हूं। क्या कोई लक्षण बता सकता है? धन्यवाद
मिशाल

1
आपके पास अनुरोध ऑब्जेक्ट उपलब्ध होने की आवश्यकता है जो आपके पास वेब पेज / सेवाओं में है लेकिन डिफ़ॉल्ट रूप से उसके पीछे नहीं है। अगर आपके पास रिक्वेस्ट ऑब्जेक्ट उपलब्ध नहीं है तो आप उरी क्लास को उपलब्ध करा सकते हैं
आदिल

54

इस तरह कोशिश करो;

Uri.GetLeftPart( UriPartial.Authority )

Uri.GetLeftPart पद्धति के लिए एक URI के भागों को परिभाषित करता है।


http://www.contoso.com/index.htm?date=today -> http://www.contoso.com

http://www.contoso.com/index.htm#main -> http://www.contoso.com

nntp: //news.contoso.com/123456@contoso.com -> nntp: //news.contoso.com

फ़ाइल: //server/filename.ext -> फ़ाइल: // सर्वर

Uri uriAddress = new Uri("http://www.contoso.com/index.htm#search");
Console.WriteLine("The path of this Uri is {0}", uriAddress.GetLeftPart(UriPartial.Authority));

Demo


28

उरी वर्ग का उपयोग करें और मेजबान संपत्ति का उपयोग करें

Uri url = new Uri(@"http://support.domain.com/default.aspx?id=12345");
Console.WriteLine(url.Host);

15

निम्नलिखित कथन का प्रयास करें

 Uri myuri = new Uri(System.Web.HttpContext.Current.Request.Url.AbsoluteUri);
 string pathQuery = myuri.PathAndQuery;
 string hostName = myuri.ToString().Replace(pathQuery , "");

उदाहरण 1

 Input : http://localhost:4366/Default.aspx?id=notlogin
 Ouput : http://localhost:4366

example2

 Input : http://support.domain.com/default.aspx?id=12345
 Output: support.domain.com

काम नहीं करता है अगर myuri.PathAndQuery है "/" ​​यह सिर्फ "/" के साथ "" को प्रतिस्थापित करता है
NDTV टीम से पैट्रिक

9

सबसे अच्छा तरीका है, और इसे करने का सही तरीका Uri.Authorityक्षेत्र का उपयोग करना है

उड़ी को ऐसे लोड करें और उपयोग करें:

Uri NewUri;

if (Uri.TryCreate([string with your Url], UriKind.Absolute, out NewUri))
{
     Console.Writeline(NewUri.Authority);
}

Input : http://support.domain.com/default.aspx?id=12345
Output : support.domain.com

Input : http://www.domain.com/default.aspx?id=12345
output : www.domain.com

Input : http://localhost/default.aspx?id=12345
Output : localhost

यदि आप Url में हेरफेर करना चाहते हैं, तो Uri ऑब्जेक्ट का उपयोग करना अच्छा तरीका है। https://msdn.microsoft.com/en-us/library/system.uri(v=vs.110).aspx


1

इसे इस्तेमाल करे

Console.WriteLine(GetDomain.GetDomainFromUrl("http://support.domain.com/default.aspx?id=12345"));

यह support.domain.com को आउटपुट देगा

या कोशिश करें

Uri.GetLeftPart( UriPartial.Authority )


-2

WWW एक उपनाम है, इसलिए यदि आपको डोमेन चाहिए तो आपको इसकी आवश्यकता नहीं है। यहां एक स्ट्रिंग से असली डोमेन प्राप्त करने के लिए मेरा लिटल फंक्शन है

private string GetDomain(string url)
    {
        string[] split = url.Split('.');
        if (split.Length > 2)
            return split[split.Length - 2] + "." + split[split.Length - 1];
        else
            return url;

    }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.