我为此使用 C# 和 ASP.NET。
我们在 IIS 6.0 服务器上收到很多“奇怪”的请求,我想按域记录和编目这些请求。
例如。我们收到一些像这样的奇怪请求:
- http://www.poker.winner4ever.example.com/
- http://www.hotgirls.example.com/
- http://santaclaus.example.com/
- http://m.example.com/
- http://wap.example.com/
- http://iphone.example.com/
后三个很明显,但我想将它们归为一类,因为“example.com”托管在我们的服务器上。其余的不是,抱歉:-)
所以我正在寻找一些关于如何从上面检索 example.com 的好主意。其次,我想将 m.、wap.、iphone 等匹配到一个组中,但这可能只是在移动快捷方式列表中快速查找。我可以先手动编写此列表。
但是这里的答案是正则表达式还是纯字符串操作是最简单的方法?我正在考虑用“。”“拆分” URL字符串。并查找 item[0] 和 item[1]...
有什么想法吗?
最佳答案
您可以使用以下 nuget Nager.PublicSuffix包裹。它使用与浏览器供应商相同的数据源。
nuget
PM> Install-Package Nager.PublicSuffix
示例
var domainParser = new DomainParser(new WebTldRuleProvider());
var domainInfo = domainParser.Parse("sub.test.co.uk");
//domainInfo.Domain = "test";
//domainInfo.Hostname = "sub.test.co.uk";
//domainInfo.RegistrableDomain = "test.co.uk";
//domainInfo.SubDomain = "sub";
//domainInfo.TLD = "co.uk";
关于c# - C# 中来自 URL 的顶级域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4643227/