我想使用C#获取连接到PC的所有计算机的IP地址,但是我不想使用Ping方法,因为它会花费很多时间,尤其是当IP地址范围很广时。
最佳答案
获取所有事件的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());
}
}
来源:
https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ipglobalproperties.getactivetcpconnections.aspx
上面的代码的短版。
foreach (var c in IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpConnections())
{
...
}
将所有机器连接到网络
进行ping扫描可能会更好。需要几秒钟来完成254个ip地址。解决方案在这里https://stackoverflow.com/a/4042887/3645638
关于c# - 如何在不使用ping方法的情况下将机器的IP地址连接到我的PC C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44276884/