0

我想列出来自主机的所有 http 活动连接,我正在使用下面的代码,它列出了所有 tcp 连接,但我想从这个 tcp 列表中专门找到 http 连接。

Console.WriteLine("Active TCP Connections");
IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();
foreach (TcpConnectionInformation c in connections)
{
    Console.WriteLine("{0} <==> {1}",
                      c.LocalEndPoint.ToString(),
                      c.RemoteEndPoint.ToString());
}
4

2 回答 2

3

端口80是标准的 HTTP 端口,端口443是标准的 HTTPS 端口。您可能想要同时过滤两者。

将循环更改foreach为以下内容:

foreach (TcpConnectionInformation c in connections)
{
    if ((c.RemoteEndPoint.Port == 80) || (c.RemoteEndPoint.Port == 443))
    {
        Console.WriteLine("{0} <==> {1}:{2}",
                          c.LocalEndPoint.ToString(),
                          c.RemoteEndPoint.ToString(),
                          c.RemoteEndPoint.Port);
    }
}
于 2013-02-28T18:35:49.260 回答
0

仅仅因为 TCP 端口是打开的,并不意味着只有 HTTP 流量会通过它。除非您有一些其他标准可用于将 TCP 连接识别为“HTTP”连接,否则过滤端口 80 可能与您将获得的一样接近。

于 2013-02-28T18:31:57.203 回答