如何知道哪台机器与使用ASP.NET的PC在同一局域网上运行?
答案 0 :(得分: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上的IP地址(for(i = 1; i < 255; i++)
)。您可能应该阅读IP地址计算:
这称为'ping sweep'。它确实假设网络上的计算机尚未配置为忽略ICMP请求。
答案 1 :(得分:0)
我会分两部分来处理这个问题;一个ASP.NET页面和一个始终运行的服务。
始终运行的服务是ARP请求的监视器,以便了解哪些计算机处于活动状态。为了查看ARP回复,它必须发出自己的ARP请求。在Windows网络上,始终有足够的空闲流量(对于浏览计算机)可以非常了解哪些计算机处于活动状态。
答案 2 :(得分:0)