Swift - 获取设备的 WIFI IP 地址

swiftWIFI

1个回答

写回答

俞燕

2025-07-06 18:50

+ 关注

Swift
Swift

如何在 Swift 中获取设备的 WIFI IP 地址

在开发 IOS 应用程序时,有时我们需要获取设备的 WIFI IP 地址。这对于一些网络相关的功能非常有用,比如局域网内设备的发现和通信。本文将介绍如何使用 Swift 语言来获取设备的 WIFI IP 地址,并提供一个示例代码。

步骤 1: 导入 NetworkExtension 框架

要获取设备的 WIFI IP 地址,我们需要导入 NetworkExtension 框架。这个框架提供了访问网络配置和扩展的接口。

Swift

import NetworkExtension

步骤 2: 创建 NEHotspotNetworkManager 实例

接下来,我们需要创建一个 NEHotspotNetworkManager 的实例来获取设备的 WIFI IP 地址。NEHotspotNetworkManager 是 NetworkExtension 框架中的一个类,它用于管理 Wi-Fi 热点网络。

Swift

let hotspotNetworkManager = NEHotspotNetworkManager.shared

步骤 3: 获取当前连接的 WIFI 网络

使用 hotspotNetworkManager 的 fetchCurrentSSID(completionHandler:) 方法来获取当前连接的 WIFI 网络的信息,其中 completionHandler 是一个回调闭包,用于处理获取结果。

Swift

hotspotNetworkManager.fetchCurrentSSID { (ssid) in

if let ssid = ssid {

// 执行获取 WIFI IP 地址的操作

} else {

print("未连接到 WIFI 网络")

}

}

步骤 4: 获取设备的 WIFI IP 地址

要获取设备的 WIFI IP 地址,我们可以使用 NEHotspotNetworkManager 的 setAuthorization(_:), getconnectionInfo(_:completionHandler:)remove(_:completionHandler:) 方法。

首先,使用 setAuthorization(_:) 方法来请求用户授权,以便我们可以获取设备的网络连接信息。

Swift

hotspotNetworkManager.setAuthorization(true)

接下来,使用 getconnectionInfo(_:completionHandler:) 方法来获取设备的网络连接信息,包括 WIFI IP 地址。

Swift

hotspotNetworkManager.getconnectionInfo { (connectionInfo, error) in

if let connectionInfo = connectionInfo {

let iPaddresses = connectionInfo.iPaddress

for iPaddress in iPaddresses {

print("WIFI IP 地址: \(iPaddress)")

}

} else if let error = error {

print("获取连接信息错误: \(error.localizedDescription)")

}

}

最后,使用 remove(_:completionHandler:) 方法来取消授权。

Swift

hotspotNetworkManager.removeAuthorization()

完整示例代码

下面是一个完整的示例代码,展示了如何使用 Swift 获取设备的 WIFI IP 地址:

Swift

import NetworkExtension

let hotspotNetworkManager = NEHotspotNetworkManager.shared

hotspotNetworkManager.fetchCurrentSSID { (ssid) in

if let ssid = ssid {

hotspotNetworkManager.setAuthorization(true)

hotspotNetworkManager.getconnectionInfo { (connectionInfo, error) in

if let connectionInfo = connectionInfo {

let iPaddresses = connectionInfo.iPaddress

for iPaddress in iPaddresses {

print("WIFI IP 地址: \(iPaddress)")

}

} else if let error = error {

print("获取连接信息错误: \(error.localizedDescription)")

}

hotspotNetworkManager.removeAuthorization()

}

} else {

print("未连接到 WIFI 网络")

}

}

通过使用 Swift 中的 NetworkExtension 框架,我们可以轻松地获取设备的 WIFI IP 地址。这对于开发需要与局域网内其他设备进行通信的应用程序非常有用。希望本文能帮助你在 Swift 中获取设备的 WIFI IP 地址。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号