我正在开发一个C#应用程序。我需要知道应用程序何时连接到不同的Wi-Fi网络。这里棘手的部分是应用程序在两个Wi-Fi网络上分配了相同的IP地址:
- 应用程序当前已连接到IP地址为11.22.33.44的Wi-Fi#1。
- 在运行应用程序的PC上,我将PC与Wi-Fi#1断开连接。
- PC快速连接到Wi-Fi#2并分配相同的IP地址(在本例中为11.22.33.44)。
- 应用程序收到NetworkChange.NetworkAddressChanged事件。
- 应用程序在NetworkInterface.GetAllNetworkInterfaces()返回的网络接口中循环,以便检测IP地址更改(通过检查分配给特定NetworkInterface.Id的IP地址是否已更改)。
- 问题是网络接口信息没有改变(NetworkInterface.OperationalStatus仍然是UP,IP地址是相同的)。
- 未收到NetworkChange.NetworkAvailabilityChanged事件。如果NetworkInterface.OperationalStatus为DOWN然后再返回UP,我可以检测到更改。
醇>
有什么想法吗?
是否可以访问Wi-Fi网络列表并找出应用程序与哪个网络连接?
谢谢!