gpt4 book ai didi

ios - 从 NWConnection 获取 ip 地址的正确方法是什么

转载 作者:行者123 更新时间:2023-12-01 16:11:55 30 4
gpt4 key购买 nike

我正在使用 NWListener newConnectionHandler 处理程序来获取 newConnection,如下所示:

listener.newConnectionHandler = { [weak self] newConnection in
guard let self = self else { return }

newConnection.stateUpdateHandler = { [weak self] newState in
guard let self = self else { return }
...
...
print("Connection endpoint: \(newConnection.endpoint)")
}

newConnection.start(queue: self.queue)
}

这是打印:10.0.1.2:62610

我需要获取只是 ip 地址,以便稍后保存它,但我无法在 NWEndpoint 中找到任何属性来获取它。我可以这样做:

var ipAddressWithPort = newConnection.endpoint.debugDescription
if let portRange = ipAddressWithPort.range(of: ":") {
ipAddressWithPort.removeSubrange(portRange.lowerBound..<ipAddressWithPort.endIndex)
}

但我一点也不喜欢。获取 ip 地址的正确方法是什么?

谢谢。

最佳答案

NWEndpoint 是不同类型端点的枚举(具有关联值)。接受的 TCP 连接的远程主机将是由主机和端口定义的端点,您可以使用 switch 语句提取这些值。

如果你只想要主机部分的字符串表示,没有端口,那就是

switch(connection.endpoint) {
case .hostPort(let host, _):
let remoteHost = "\(host)"
print(remoteHost) // 10.0.1.2
default:
break
}

关于ios - 从 NWConnection 获取 ip 地址的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62348032/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com