none
[急]监控局域网电脑 RRS feed

  • 问题

  • 要求:
    1.开机要求输入用户名和密码(和网吧一样)
    2.服务器用一个C#做程序监控局域网所有机子的开机时间和关机时间
    3.可以监控局域网所有机子所有的操作(能实现就实现吧)

    哪位大虾以前弄过,求教了!


    付出不一定有回报,不付出那就一定没有回报!
    2010年6月30日 2:22

答案

  • c#做这个比较麻烦

    不过c#做服务器端应该没什么问题。

    简单和你说一个思路:

    1.你需要做2个程序,一个客户端,一个服务端。客户端安装到被你监控的机器上。

    2.客户端建议使用vc做,考虑到操作系统的不一样,这里比较复杂,不多说。使用socket和服务端通讯。用c#开发的时候,还需要同时部署.NET 框架,而且C#和操作系统打交道也不是很方便。(当然c#是可以实现)

    3.服务端可以用c#做开发。可以开启一个socket监听,接受客户端的命令,处理登陆,开关机命令,记录操作时间等。

    4.操作监控这个不知道你要实现成什么样子?是操作记录呢?还是实时查看客户端操作(类似冰河?)如果是记录,可以通过捕获键盘鼠标事件以及操作对象录制一个类似loadrunner的脚本来记录用户操作的过程;如果是类似冰河的这种远程桌面式的监控,那么就比较复杂,如果没有远程操作,那么就是桌面图像的实时捕获和传输+记录。这里需要一个很好的算法来实现,主要是压缩和区域变化传输2个办法来做到最小化内容传输。

    总之,这个不是一下就能完善的,慢慢一个一个功能实现吧。

     


    family as water
    2010年6月30日 5:48
  • 开机需要输入用户名/密码,以及监控机器的开机/关机时间,都可以通过 Active Directory 实现。您只需要在 LAN 中部署一个域控制器,建立一个 Active Directory 服务,其他要被监控的机器加入域,就很容易从安全审计日志中看到这些信息。

    C# 做监控程序其主要原理就是打开一个 TCP 端口,把自己作为 Windows 服务运行,然后每隔指定的时间 (如 0.2s) 就利用 PrintScreen(HWND) 这个 API 拷贝屏幕后,通过刚才打开的端口发送到服务器,要实现一个简单的监控程序不是很难,关键是如何控制接收服务器的负载 (因为会有很多客户端程序都会在较短的时间间隔发送 BMP 格式的图片,数据量还是相当可观的)。之所以 0.2s 就是因为这样可以利用人眼的视觉延迟效应把它们模拟成动画。


    Mark Zhou
    2010年6月30日 9:17

全部回复

  • c#做这个比较麻烦

    不过c#做服务器端应该没什么问题。

    简单和你说一个思路:

    1.你需要做2个程序,一个客户端,一个服务端。客户端安装到被你监控的机器上。

    2.客户端建议使用vc做,考虑到操作系统的不一样,这里比较复杂,不多说。使用socket和服务端通讯。用c#开发的时候,还需要同时部署.NET 框架,而且C#和操作系统打交道也不是很方便。(当然c#是可以实现)

    3.服务端可以用c#做开发。可以开启一个socket监听,接受客户端的命令,处理登陆,开关机命令,记录操作时间等。

    4.操作监控这个不知道你要实现成什么样子?是操作记录呢?还是实时查看客户端操作(类似冰河?)如果是记录,可以通过捕获键盘鼠标事件以及操作对象录制一个类似loadrunner的脚本来记录用户操作的过程;如果是类似冰河的这种远程桌面式的监控,那么就比较复杂,如果没有远程操作,那么就是桌面图像的实时捕获和传输+记录。这里需要一个很好的算法来实现,主要是压缩和区域变化传输2个办法来做到最小化内容传输。

    总之,这个不是一下就能完善的,慢慢一个一个功能实现吧。

     


    family as water
    2010年6月30日 5:48
  • 那些网吧管理软件都有这些功能,下载几个去参考下,美萍、万象等等。
    微软技术,世界动力
    2010年6月30日 9:05
    版主
  • 开机需要输入用户名/密码,以及监控机器的开机/关机时间,都可以通过 Active Directory 实现。您只需要在 LAN 中部署一个域控制器,建立一个 Active Directory 服务,其他要被监控的机器加入域,就很容易从安全审计日志中看到这些信息。

    C# 做监控程序其主要原理就是打开一个 TCP 端口,把自己作为 Windows 服务运行,然后每隔指定的时间 (如 0.2s) 就利用 PrintScreen(HWND) 这个 API 拷贝屏幕后,通过刚才打开的端口发送到服务器,要实现一个简单的监控程序不是很难,关键是如何控制接收服务器的负载 (因为会有很多客户端程序都会在较短的时间间隔发送 BMP 格式的图片,数据量还是相当可观的)。之所以 0.2s 就是因为这样可以利用人眼的视觉延迟效应把它们模拟成动画。


    Mark Zhou
    2010年6月30日 9:17
  • 貌似很简单有很难啊!


    付出不一定有回报,不付出那就一定没有回报!
    2010年6月30日 10:23
  • 除去要求3,您只要把这些计算机加入同一个域,即可在域中实现要求。
    Eternal Snow
    2010年7月2日 2:45