代码之家  ›  专栏  ›  技术社区  ›  Shyju

如何在ASP.NET中监视网络上的活动计算机?

  •  0
  • Shyju  · 技术社区  · 17 年前

    使用ASP.NET,我如何知道哪些机器与我的电脑在同一LAN上处于活动状态?

    3 回复  |  直到 17 年前
        1
  •  2
  •   GEOCHET S.Lott    17 年前

    您可以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

    for(i = 1; i < 255; i++)

    http://blogs.msdn.com/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx

    这称为“ping扫描”。它假定网络上的计算机未配置为忽略ICMP请求。

        2
  •  0
  •   Joshua    17 年前

    “始终运行”服务可以监视ARP请求,以了解哪些机器处于活动状态。为了查看ARP回复,它必须发出自己的ARP请求。在Windows网络上,总是有足够的空闲通信量(用于浏览计算机),以便很好地了解哪些计算机处于活动状态。

        3
  •  0
  •   rmeador    17 年前

    如果您能够在网络上的各种计算机上安装监控软件,我很幸运地使用了 nagios 用于跟踪生产网络中哪些服务器启动/负载沉重/磁盘空间不足等。它还有一个很好的web前端,您甚至不需要使用ASP。

    如果你必须用ASP创建一些自己开发的东西,我会使用 nmap 扫描C类子网,然后在ASP页面中打印结果。这不是一个非常有效的方法,但是它非常简单,并且可以保证工作正常(使用适当的选项)。

    推荐文章