如何判断设备何时连接和断开网络连接?

时间:2012-09-06 09:29:12

标签: c# networking snmp router arp

我希望能够根据我的手机(wifi)的wifi网络布防/撤防我的监控软件(开源 - ispy)。不知怎的,我需要ispy来检测手机已经连接到无线网络以解除系统的武装,然后还检测到它已经断开连接,以便它可以重新武装它。

我一直在阅读有关SNMP(我无法工作的内容) - 我在udp端口161上设置了一个监听器,并将陷阱管理器设置为指向我的电脑,除了最初的“0?”​​)和ARP(我已经能够工作但它似乎在我的本地PC上缓存,并且绝对没有实时更新)。

我宁愿找到一个解决方案,它依赖于来自路由器的通知(最好不是UPNP,因为我发现容易崩溃)或通过一些网络数据包嗅探,而不是通过不断轮询路由器列表连接设备。 c#中的任何例子都很棒。

2 个答案:

答案 0 :(得分:1)

当设备连接时,它会广播DHCP请求,这些请求对于连接到路由器的每个设备都应该是可见的(因为内部端口将要回答它,它不太可能在无线上重新广播)

断开连接更困难,因为当设备离开时你不会得到任何东西。你必须不断轮询它并注意它何时不再响应。当然,你可以只播放针对手机特定内容的民意调查,并知道它何时到达并离开时只使用它。

有一个名为“blueproximity”的程序使用蓝牙做类似的事情。它可能不是你想要的问题,但你可以看看它的想法。

答案 1 :(得分:0)

你没有提到它但是因为你谈到ARP我认为设备是在DHCP下,所以我们必须使用MAC地址。那就说你为什么不用Nmap?它是免费的,简单的,并且已经包含一个可以使用C#轻松解析的XML输出。我实际上是这样做的,只是我现在没有这台电脑上的代码:/