Windows知道您是否已从NIC中拔出网络电缆。是否有一种以C ++编程的API方式可以确定此信息?
注意:我不使用.NET,这是针对一个封闭的局域网(永远不连接到互联网)。
Windows知道您是否已从NIC中拔出网络电缆。是否有一种以C ++编程的API方式可以确定此信息?
注意:我不使用.NET,这是针对一个封闭的局域网(永远不连接到互联网)。
使用Network List Manager api和INetwork api。
您可以注册您的应用程序以接收网络连接/未连接时的回调。
或者您可以获取网络列表,然后检查每个网络以查看机器是否已连接到网络。
请记住,Windows 计算机通常会设置多个网络(Ethernet、Wi-Fi 等)。
请记住,仅因为一个网络已连接,您可能并没有访问互联网。例如,您可能会遇到 DNS 或路由问题。或者您可能连接到一个工作网络,但该网络未连接到互联网。
由于以上原因,许多诊断工具也会连接到“已知良好”的互联网服务器,以确切地了解它们是否已连接。类似于 google.com 这样的东西。他们花费大量资金确保其网站始终处于上线状态。
最后,您还可以拥有半连接状态,其中数据包正在传输,但不足以真正启用通信。为了测试这一点,不要只 ping 一个互联网站点,因为那只是一对数据包。代替地,打开一个 TCP 连接或其他比 ping 更多的内容。