【问题标题】:Get IP Address of Device connected to my iPhone's Personal Hotspot using Swift使用 Swift 获取连接到我的 iPhone 个人热点的设备的 IP 地址
【发布时间】:2021-12-06 23:51:46
【问题描述】:

我有一个要求,我需要获取当前连接到我的 iPhone 个人热点的设备的 IP 地址。

在互联网上尝试了很长时间,但没有找到解决此问题的方法。

以下是我发现的应用程序,它正在扫描并提供我需要的类似内容。

https://apps.apple.com/in/app/network-analyzer/id562315041

所以从技术上讲,我开始知道这是可能的事情,但目前还没有任何起点。

感谢任何提示和指导。提前非常感谢

【问题讨论】:

    标签: ios swift iphone xcode


    【解决方案1】:

    获取 wifi、有线和蜂窝网络的 IPAddress - swift 5

    func getIPAddress() -> String {
        var address: String?
        var ifaddr: UnsafeMutablePointer<ifaddrs>? = nil
        if getifaddrs(&ifaddr) == 0 {
            var ptr = ifaddr
            while ptr != nil {
                defer { ptr = ptr?.pointee.ifa_next }
    
                guard let interface = ptr?.pointee else { return "" }
                let addrFamily = interface.ifa_addr.pointee.sa_family
                if addrFamily == UInt8(AF_INET) || addrFamily == UInt8(AF_INET6) {
    
                    // wifi = ["en0"]
                    // wired = ["en2", "en3", "en4"]
                    // cellular = ["pdp_ip0","pdp_ip1","pdp_ip2","pdp_ip3"]
    
                    let name: String = String(cString: (interface.ifa_name))
                    if  name == "en0" || name == "en2" || name == "en3" || name == "en4" || name == "pdp_ip0" || name == "pdp_ip1" || name == "pdp_ip2" || name == "pdp_ip3" {
                        var hostname = [CChar](repeating: 0, count: Int(NI_MAXHOST))
                        getnameinfo(interface.ifa_addr, socklen_t((interface.ifa_addr.pointee.sa_len)), &hostname, socklen_t(hostname.count), nil, socklen_t(0), NI_NUMERICHOST)
                        address = String(cString: hostname)
                    }
                }
            }
            freeifaddrs(ifaddr)
        }
        return address ?? ""
    }
    

    如何使用

    let strIPAddress : String = self.getIPAddress()
    print("IPAddress :: \(strIPAddress)")
    

    注意:在您项目的 Bridging-Header 文件中添加以下内容

    #include<ifaddrs.h>
    

    【讨论】:

    • 这看起来几乎是stackoverflow.com/q/62041244/1187415的逐字副本。
    • 错了!实际上,我不是在寻找 wifi 或蜂窝的 IP 地址。请仔细检查我的问题。我目前正在寻找一种解决方案,它可以为我提供当前连接到我的 iPhone 个人热点的设备的 IP 地址。
    • 好的,知道了。为此,您可以查看此链接github.com/Feghal/FGRoute
    猜你喜欢
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多