使用C#解析域名和子域名的最佳方法是什么?该解决方案还应该与" localhost"这样在本地开发中就可以像在生产中一样使用相同的代码。
示例和预期结果:
http(s)://yahoo.com -> domain:yahoo.com | subdomain:
http(s)://test.yahoo.com -> domain:yahoo.com | subdomain:test
http(s)://test.testing.yahoo.com -> domain:yahoo.com | subdomain:test.testing
http(s)://localhost:55555 -> domain:localhost | subdomain:
http(s)://test.localhost:55555 -> domain:localhost | subdomain:test
http(s)://test.testing.localhost:55555 -> domain:localhost | subdomain:test.testing
http(s)://yahoo.com.uk -> domain:yahoo.com.uk | subdomain:
http(s)://test.yahoo.com.uk -> domain:yahoo.com.uk | subdomain:test
答案 0 :(得分:3)
例如,无法确定您的子域名是什么:
www.yahoo.com
www2.yahoo.com
www
和www2
子域名是?还有newcastle.sch.uk
呢?这是一个域,而不是子域。那个新的.uk
顶级域名呢?
至于其他组件,我会像这样使用Uri
类:
var url = "http://someuser@test.somedomain.com:1234";
var uri = new Uri(url);
Console.WriteLine(uri.Host);
Console.WriteLine(uri.Port);
Console.WriteLine(uri.Scheme);
Console.WriteLine(uri.UserInfo);
这将输出:
test.somedomain.com
1234
http
someuser