获取iPhone或iPad设备的IP地址使用Swift 3 [英] Get IPAddress of iPhone or iPad device Using Swift 3

查看:321
本文介绍了获取iPhone或iPad设备的IP地址使用Swift 3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在不使用任何使用Swift 3编程语言的第三方库的情况下获取设备IP地址。实际上我使用以下代码来获取IP地址。

How to get the device IP Address without using any third party libraries using Swift 3 programming language. Actually I have used following code in order to get the IP Address.

func getIPAddress() -> String? {
var address : String?

var ifaddr : UnsafeMutablePointer<ifaddrs> = nil
if getifaddrs(&ifaddr) == 0 {

    var ptr = ifaddr
    while ptr != nil {
        defer { ptr = ptr.memory.ifa_next }

        let interface = ptr.memory

        let addrFamily = interface.ifa_addr.memory.sa_family
        if addrFamily == UInt8(AF_INET) || addrFamily == UInt8(AF_INET6) {

            if let name = String.fromCString(interface.ifa_name) where name == "en0" {

                var hostname = [CChar](count: Int(NI_MAXHOST), repeatedValue: 0)
                getnameinfo(interface.ifa_addr, socklen_t(interface.ifa_addr.memory.sa_len),
                            &hostname, socklen_t(hostname.count),
                            nil, socklen_t(0), NI_NUMERICHOST)
                address = String.fromCString(hostname)
            }
        }
    }
    freeifaddrs(ifaddr)
}

return address

}

但是UnsafeMutablePointer语法不起作用。它通过语法错误。我是否需要导入任何框架试图帮助我。

But the UnsafeMutablePointer syntax is not working. It throughs syntax error. Do I need to import any framework try to help me.

推荐答案

添加 #include<你的桥接标题中有ifaddrs.h>

Add #include<ifaddrs.h> in your bridging header.

这是获取IP地址所需的框架。

This is the framework needed to get IP address.

您还可以参考以下链接:

Also you can refer the following link:

Swift - 获取设备的IP地址

这篇关于获取iPhone或iPad设备的IP地址使用Swift 3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆