从URL获取端口协议详细信息

时间:2016-04-04 05:46:13

标签: c# asp.net

我需要从URL获取端口协议详细信息。有人可以帮帮我吗?我试过一些代码 -

 Uri uri = new Uri("http://stackoverflow.com/questions/ask");
        string requested = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port;

问题1 - 此代码不告诉我这是TCP还是UDP还是ISMP

问题2 - 此代码不检查URL的实际端口/协议详细信息。

问题3 - 如果我有这样的网址 - “stackoverflow.com”,我无法构建网址。

请有人帮助我。

由于 Gulrej

2 个答案:

答案 0 :(得分:2)

这可能有所帮助,它对我有用

string url = "http://www.contoso.com:8080/letters/readme.html";

 Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",
                          RegexOptions.None, TimeSpan.FromMilliseconds(150));
      Match m = r.Match(url);
      if (m.Success)
         Console.WriteLine(r.Match(url).Result("${proto}${port}")); 

答案 1 :(得分:0)

使用url = stackoverflow.com/questions/ask

您很容易知道:

协议= http或https。

并且

端口=默认端口= 80(http)或443(https)

如果有特定端口,它将被放置在主机名之后 [stackoverflow.com:8180]