我需要获取WiFi接口的设备IP。
根据多个 StackOverflow 线程,我们可以假设“en0”对应于 Wi-Fi 接口名称: https://stackoverflow.com/a/30754194/12866797
然而,这感觉像是某种约定,而不是标准。
是否有任何一致/标准的方法来使用 iOS SDK 检索 WiFi 接口或设备 WiFi IP 地址?
如果 API 可以从 iOS 11 开始使用就好了,但我不会挑剔。
我最好的尝试是使用 NWPathMonitor (iOS 12+) 并监控与 WiFi 接口 (NWInterface.InterfaceType.wifi) 相对应的网络变化:
- (void) MonitorWifiInterface
{
m_pathMonitor = nw_path_monitor_create_with_type(nw_interface_type_wifi);
nw_path_monitor_set_update_handler(m_pathMonitor, ^(nw_path_t _Nonnull path) {
NSLog(@"[NetInterfaceUtilies] Network path changed");
nw_path_enumerate_interfaces(path, ^ bool (nw_interface_t _Nonnull itf)
{
NSLog(@"[NetInterfaceUtilies] Name : %s , Index : %u", nw_interface_get_name(itf), nw_interface_get_index(itf));
return true; // In order to continue the enumeration
});
});
nw_path_monitor_start(m_pathMonitor);
}
但我对它不满意,原因如下: