[英]how can i get hotspot connected devices ip address and MAC address in ios iphone swift?
[英]iOS Xcode Swift - How to get hotspot connected devices IP address?
我需要使用 Swift 5 開發一個 iOS 應用程序來查找我的 iPhone 熱點連接設備 IP 信息。
在 Swift 5 或任何其他開源代碼中是否有任何 API?
請參考下面的代碼。
要獲取熱點連接設備的 IP,請使用 Network.wifi 。
enum Network: String {
case wifi = "en0"
case cellular = "pdp_ip0"
case ipv4 = "ipv4"
case ipv6 = "ipv6"
}
func getAddress(for network: Network) -> String? {
var address: String?
// Get list of all interfaces on the local machine:
var ifaddr: UnsafeMutablePointer<ifaddrs>?
guard getifaddrs(&ifaddr) == 0 else { return nil }
guard let firstAddr = ifaddr else { return nil }
// For each interface ...
for ifptr in sequence(first: firstAddr, next: { $0.pointee.ifa_next }) {
let interface = ifptr.pointee
// Check for IPv4 or IPv6 interface:
let addrFamily = interface.ifa_addr.pointee.sa_family
if addrFamily == UInt8(AF_INET) || addrFamily == UInt8(AF_INET6) {
// Check interface name:
let name = String(cString: interface.ifa_name)
if name == network.rawValue {
// Convert interface address to a human readable string:
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
}
print("wifi: \(String(describing: getAddress(for: .wifi)))")
有關更多信息,請參閱以下鏈接:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.