Swift: obtenga la dirección IP WIFI del dispositivo
Necesito obtener la dirección IP del dispositivo iOS en Swift. ¡Esto no es un duplicado de otras preguntas sobre esto! Necesito obtener solo la dirección IP WiFi, si no hay una dirección IP wifi, necesito manejarla. Hay algunas preguntas al respecto en Stack Overflow, pero solo hay funciones que devuelven direcciones IP. Por ejemplo (deCómo obtener la dirección IP en Swift):
func getIFAddresses() -> [String] {
var addresses = [String]()
// Get list of all interfaces on the local machine:
var ifaddr : UnsafeMutablePointer<ifaddrs> = nil
if getifaddrs(&ifaddr) == 0 {
// For each interface ...
for (var ptr = ifaddr; ptr != nil; ptr = ptr.memory.ifa_next) {
let flags = Int32(ptr.memory.ifa_flags)
var addr = ptr.memory.ifa_addr.memory
// Check for running IPv4, IPv6 interfaces. Skip the loopback interface.
if (flags & (IFF_UP|IFF_RUNNING|IFF_LOOPBACK)) == (IFF_UP|IFF_RUNNING) {
if addr.sa_family == UInt8(AF_INET) || addr.sa_family == UInt8(AF_INET6) {
// Convert interface address to a human readable string:
var hostname = [CChar](count: Int(NI_MAXHOST), repeatedValue: 0)
if (getnameinfo(&addr, socklen_t(addr.sa_len), &hostname, socklen_t(hostname.count),
nil, socklen_t(0), NI_NUMERICHOST) == 0) {
if let address = String.fromCString(hostname) {
addresses.append(address)
}
}
}
}
}
freeifaddrs(ifaddr)
}
return addresses
}
Aquí obtengo 2 valores: dirección de Internet móvil (creo) y dirección WiFi que necesito. ¿Hay alguna otra forma de obtener SOLO la dirección IP de WiFi?