了解客户可以从域名进入网站。 他们还可以从他们的联系人输入mailadresses。
知道我们需要找到哪些websited whoose域可以关联到mailadresses的域用户。
所以我的想法是从webadress并从URL中提取的主机并进行比较
那么,什么是最可靠的算法得到从URL的主机名?
例如一台主机可以是:
foo.com
www.foo.com
http://foo.com
https://foo.com
https://www.foo.com
结果应始终foo.com
而不是依靠不可靠的正则表达式使用System.Uri
做解析为您服务。 使用这样的代码:
string uriStr = "www.foo.com";
if (!uriStr.Contains(Uri.SchemeDelimiter)) {
uriStr = string.Concat(Uri.UriSchemeHttp, Uri.SchemeDelimiter, uriStr);
}
Uri uri = new Uri(uriStr);
string domain = uri.Host; // will return www.foo.com
我们得到的只是你可以使用顶级域名:
string tld = uri.GetLeftPart( UriPartial.Authority ); // will return foo.com
这里有一个正则表达式将匹配您所提供的网址。 基本上http和https等是任选的,因为是在WWW然后一切都匹配了一个可能的路径;
var expression = /(https?:\/\/)?(www\.)?([^\/]*)(\/.*)?$/;
这意味着,
var result = 'https://www.foo.com.vu/blah'.replace(expression, '$3')
将评估为
result === 'foo.com.vu'
目前已经在C#中的URL解析器提取信息
下面是一些例子http://www.stev.org/post/2011/06/27/C-HowTo-Parse-a-URL.aspx
看到这个网址。 主机属性,不像管理局将不包括端口号。
http://msdn.microsoft.com/en-us/library/system.uri.host(v=vs.110).aspx