[英]Enumerate all open connections
是否可以使用.NET枚舉當前進程的所有打開連接? (類似於netstat工具執行此操作的方式)
您可以使用.NET中的IPGlobalProperties
類來完成此操作。 使用實例,您可以獲得netstat
通常顯示的三個內容中的任何一個:
GetActiveTcpConnections()
GetActiveTcpListeners()
GetActiveUdpListeners()
請注意,沒有“UDP連接”這樣的東西。
這是使用此API的netstat的簡單版本:
using System;
using System.Net.NetworkInformation;
namespace NetStatNet
{
class Program
{
static void Main(string[] args)
{
var props = IPGlobalProperties.GetIPGlobalProperties();
Console.WriteLine(" Proto Local Address Foreign Address State");
foreach (var conn in props.GetActiveTcpConnections())
Console.WriteLine(" TCP {0,-23}{1,-23}{2}",
conn.LocalEndPoint, conn.RemoteEndPoint, conn.State);
foreach (var listener in props.GetActiveTcpListeners())
Console.WriteLine(" TCP {0,-23}{1,-23}{2}", listener, "", "Listening");
foreach (var listener in props.GetActiveUdpListeners())
Console.WriteLine(" UDP {0,-23}{1,-23}{2}", listener, "", "Listening");
Console.Read();
}
}
}
IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();
你必須將此數組轉換為IEnum
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.