网络电缆拔出时检测

时间:2010-05-26 19:49:20

标签: c++ networking windows-xp

Windows知道何时从网卡上拔下网线。是否有一种编程方式通过C ++中的API确定这个?

注意:我没有使用.NET,这是用于封闭的LAN(未连接到Internet)

2 个答案:

答案 0 :(得分:9)

Raymond Chen blogged最近有类似的事情。这是相关的documentation。我认为你正在寻找MIB_IPADDR_DISCONNECTED标志。

答案 1 :(得分:1)

Network List Manager api与INetwork api。

一起使用

您可以注册您的应用以在网络连接/未连接时接收回叫。

或者您可以获取网络列表,然后检查每个网络以查看该计算机是否已连接网络

请记住,Windows机器通常会设置多个网络(以太网,wifi等)

请记住,仅仅因为网络已连接,您可能无法访问互联网。例如,您可能遇到DNS或路由问题。或者你可能在一个没有连接到互联网的工作网络上。

由于上述原因,如果许多诊断工具想要真正知道它们是否已连接,它们也会连接到“已知良好”的互联网服务器。像google.com这样的东西 - 他们花了很多钱来确保他们的网站一直在运行。

最后,您还可以处于半连接状态,即数据包通过但不足以真正实现通信流。要测试这一点,不要只是ping一个互联网网站,因为它只是一对数据包。相反,打开TCP连接或ping以外的东西。