我想要获得使用C#连接到我的PC的所有机器的IP地址,但我不想使用Ping方法,因为它需要很多时间,特别是当IP地址范围非常广的时候。
发布于 2017-05-31 14:11:19
获取所有活动的TCP连接
使用IPGlobalProperties.GetActiveTcpConnections方法
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());
}
}来源:
TCP注意:这只给出了active
connections__。
上面代码的简短版本。
foreach (var c in IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpConnections())
{
...
}将所有计算机连接到网络
进行ping扫描可能会更好。完成254个ip地址只需要几秒钟。解决方案在这里https://stackoverflow.com/a/4042887/3645638
https://stackoverflow.com/questions/44276884
复制相似问题