【问题标题】:Monitoring clients connected to a network监控连接到网络的客户端
【发布时间】:2013-12-02 04:58:47
【问题描述】:

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

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

缺点:-

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

2.如果客户端不可达/不在局域网/找不到主机,ping方法会等待一段时间并抛出异常。

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

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

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

本质

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#。

【问题讨论】:

  • 您的尝试似乎是在对断开连接的机器进行外部监控。这是您的环境中的限制,还是可以在受监控的机器上安装一些东西来跟踪它何时认为它失去了网络连接?
  • 你考虑过检查你的机器ARP表吗? stackoverflow.com/questions/13492134/…
  • 我在一个局域网中有 30 个系统。在一个我需要运行我的代码,(所有机器都是 Windows 7)。服务应该在服务器(代理)中连续运行并通知客户端系统的连接/断开状态。我们甚至可以在客户端运行一个服务来做到这一点。
  • 你能连接到网络路由器并请求信息吗?
  • 是的,我们可以做到。但它需要根据需要检查信息并获取它。我需要一种服务类型的东西,一旦应用程序打开kye,它应该自动监控和通知。

标签: c# .net network-programming


【解决方案1】:

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

  1. 查找您收到的任何 ARP 公告数据包。将 IP 地址添加到要在网络上监控的设备列表中,并在出现时发出警报。
  2. 对您记录的所有 IP 地址运行检测信号。
    1. 执行快速 ping(等待时间不要超过 10 毫秒)。
    2. 如果没有响应,发出警报并将其从监控列表中删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多