C# 如何使用.NET Framework(无非托管PE导入!)获取所有活动TCP连接?

C# 如何使用.NET Framework(无非托管PE导入!)获取所有活动TCP连接?,c#,.net,sockets,C#,.net,Sockets,如何使用.NET Framework(无非托管PE导入!)获取所有活动TCP连接 我正在学习socket编程,想检查一下。在我的研究中,我通过导入一个我不感兴趣的非托管DLL文件找到了解决方案。我对大量用户告诉我纯托管代码不可能做到这一点感到惊讶。。。对于对此感到疑惑的未来用户,请从答案中找到适合我的详细信息: //Don't forget this: using System.Net.NetworkInformation; public static void ShowActiveTcpCo

如何使用.NET Framework(无非托管PE导入!)获取所有活动TCP连接


我正在学习socket编程,想检查一下。在我的研究中,我通过导入一个我不感兴趣的非托管DLL文件找到了解决方案。

我对大量用户告诉我纯托管代码不可能做到这一点感到惊讶。。。对于对此感到疑惑的未来用户,请从答案中找到适合我的详细信息:

//Don't forget this:
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());
    }
}
//别忘了这一点:
使用System.Net.NetworkInformation;
公共静态无效ShowActiveTCPCConnections()
{
Console.WriteLine(“活动TCP连接”);
IPGlobalProperties属性=IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[]connections=properties.GetActiveTcpConnections();
foreach(连接中的TCP连接信息c)
{
Console.WriteLine(“{0}{1}”,
c、 LocalEndPoint.ToString(),
c、 RemoteEndPoint.ToString());
}
}
然后调用
ShowActiveTcpConnections()
列出它,棒极了,很漂亮


来源:(MSDN)

使用纯.net并不总是可行。有许多东西是故意从.net中无法访问的,尤其是低级的东西。这样做通常是出于安全原因,以便您知道仅使用托管代码的dll无法对您的系统执行某些操作。请使用system.Net.NetworkInformation命名空间中的IPGlobalProperties.GetActiveTCPCConnections()。太棒了!,我正在看一看,我想了解投票结果,请提供帮助,并张贴原因,这是一个昂贵的东西,为获得tcp连接。例如,我想在web请求背后的实时环境中使用它,可以吗?我知道我参加聚会迟到了,但如果这就是你正在做的,
foreach(IPGlobalProperties.GetIPGlobalProperties().getactivetcpcconnections()中的var c)
回答得很好!但是我们有没有办法得到更多的信息?比如负责连接的流程?(如资源监视器中所示)有人能告诉我IPGlobalProperty.GetActiveTcpConnections()或GetActiveTcpListeners是否会触发端口扫描,该扫描可能会被Windows防火墙或Active Directory上的GPO阻止吗?@Pierre Use.net core