我如何使用 ASP.NET 知道哪些机器与我的 PC 在同一个 LAN 上处于活动状态?
问问题
2682 次
3 回答
2
您可以 ping 网络上的计算机。
// addressToPing can be an IPaddress or host name.
// returns a boolean indicating successful ping
public static bool PingComputer (string[] addressToPing)
{
Ping pingSender = new Ping ();
PingOptions options = new PingOptions ();
// Use the default Ttl value which is 128,
// but change the fragmentation behavior.
options.DontFragment = true;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
int timeout = 120;
PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
return reply.Status == IPStatus.Success;
}
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping.aspx
您可以使用此 ping 代码并遍历 LAN ( for(i = 1; i < 255; i++)
) 上的 IP 地址。不过,您可能应该阅读有关进行 IP 地址计算的内容:
这称为“ping 扫描”。它确实假定网络上的计算机尚未配置为忽略 ICMP 请求。
于 2009-01-15T17:20:55.070 回答
0
我将分两部分处理这个问题;一个 ASP.NET 页面和一个始终运行的服务。
始终运行的服务监控 ARP 请求,以了解哪些机器处于活动状态。为了查看 ARP 回复,它必须发出自己的 ARP 请求。在 Windows 网络上,总是有足够的空闲流量(用于浏览计算机)来很好地了解哪些计算机处于活动状态。
于 2009-01-15T17:35:36.943 回答