要在C#中获取某个进程正在连接的IP地址和端口号,可以使用System.Net.NetworkInformation命名空间中的类和方法。以下是一种方法:
csharp复制using System;
using System.Diagnostics;
using System.Net;
using System.Net.NetworkInformation;
class Program
{
static void Main()
{
int processId = 1234; // 替换为你要检查的进程的ID
// 获取指定进程的所有网络连接
IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] connections = ipProperties.GetActiveTcpConnections();
foreach (TcpConnectionInformation connection in connections)
{
if (connection.State == TcpState.Established && connection.ProcessId == processId)
{
Console.WriteLine("Local IP: {0}:{1}", connection.LocalEndPoint.Address, connection.LocalEndPoint.Port);
Console.WriteLine("Remote IP: {0}:{1}", connection.RemoteEndPoint.Address, connection.RemoteEndPoint.Port);
Console.WriteLine();
}
}
}
}
在上述示例中,我们使用IPGlobalProperties.GetIPGlobalProperties()
方法获取系统的IP全局属性,然后使用GetActiveTcpConnections()
方法获取所有活动的TCP连接。我们遍历这些连接,并检查与指定进程ID匹配的连接。如果连接状态为TcpState.Established
,则打印本地IP地址和端口号以及远程IP地址和端口号。
云+社区技术沙龙[第6期]
腾讯云GAME-TECH沙龙
第四期Techo TVP开发者峰会
DBTalk技术分享会
GAME-TECH
腾讯位置服务技术沙龙
云+社区技术沙龙[第10期]
领取专属 10元无门槛券
手把手带您无忧上云