gpt4 book ai didi

objective-c - 如何使用 NSHost 获取外部 IP 地址?

转载 作者:行者123 更新时间:2023-12-03 16:23:25 24 4
gpt4 key购买 nike

我正在尝试查找我的外部 IP 地址,但我只能找到位于 NAT 后面的本地 IP 地址。

NSArray *addresses = [[NSHost currentHost] addresses];

有没有办法打印出公共(public)地址?使用 NSHost 是个好主意吗?

最佳答案

可能并不总是有可靠的方法来获取您的公共(public) IP,但 OS X 中的 DNSService API 将使用 UPnP 和/或 NAT 端口映射协议(protocol)来获取公共(public) IP(除其他外)。说明如何使用 C API 的代码在此处显示会有点大(50-60 行),但有一些 Apple 示例代码围绕功能实现了一个很好的 ObjC 包装器,甚至提供了一对直接返回的函数公共(public) IP 地址的 UInt32 和 NSString 表示形式。

相关代码本身is located here ,但您可能最好只下载 zip 文件并将 PortMapper.h 和 PortMapper.m 包含在您的项目中并直接使用它们。那么您需要做的就是:

NSString * publicAddressString = [PortMapper findPublicAddress];

关于objective-c - 如何使用 NSHost 获取外部 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/931889/

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