在C#中使用GetActiveTcpConnections()时,如何确定哪个端点启动了连接

本文关键字:何确定 端点 连接 启动 GetActiveTcpConnections | 更新日期: 2023-09-27 18:26:50

这段代码运行良好,但我想知道是否可以获得每个连接的发起人信息?类似于哪个端点启动了连接。这可能吗?

using System.Net.NetworkInformation;
public static void ShowActiveTcpConnections()
{
    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());
    }
}

在C#中使用GetActiveTcpConnections()时,如何确定哪个端点启动了连接

TCP连接在列出的端口上接收。入站连接将从GetActiveTcpListeners()返回,并可以从GetActiveTCPConnection()中扣除以获得出站连接。

https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ipglobalproperties.getactivetcplisteners(v=vs.110).aspx

你可以看看http://www.timvw.be/2007/09/09/build-your-own-netstatexe-with-c/

这将告诉你如何获得流程:

Console.WriteLine("{0}",processModule.FileName);