监控连接到网络的客户端

时间:2013-12-02 04:58:47

标签: c# .net network-programming

我需要监控连接到LAN网络的客户端系统。 如果系统连接到LAN,我需要收到通知并且 如果系统与局域网断开连接,我需要收到通知。

目前,我正在使用C#代码连续ping系统并完成工作。

缺点: -

1.我将系统名称硬编码为ping。

2.如果客户端无法访问/未找到LAN / Host,则ping方法会等待一段时间并抛出异常。

3.为了在后台执行此操作,我在一个线程中执行此功能。

4.在计时器内调用该线程。

实现这一目标的最佳方法是什么?

ESSENCE

Some event , it should notify on new incoming connections, 
connection which is getting lost from LAN. This event should run async, monitor 
continuously.

我正在使用Windows应用程序(WPF),C#。

1 个答案:

答案 0 :(得分:1)

假设您不想在要监控的所有PC上安装代理,最好的办法是遵循以下流程:

  1. 查找您收到的任何ARP Announce数据包。将IP地址添加到要在网络上监控的设备列表,并在其上发出警报。
  2. 在您录制的所有IP地址上运行心跳。
    1. 执行快速ping(不要等待超过10毫秒)。
    2. 如果没有响应,请提醒并将其从监视器列表中删除。