Swift 的 NetUtils
Swift 库,简化了获取网络接口及其属性的信息,适用于 iOS、macOS 和 Linux。此库是围绕如 getifaddrs
之类的 BSD API 的包装器,以便从 Swift 中轻松使用它们。
在 macOS 或 iOS 上集成此库的推荐方法是使用 CocoaPods: https://cocoapods.org.cn/pods/NetUtils。在 Linux 上,我推荐使用 Swift 包管理器。
此库与 Swift 5 和 Swift 6 都兼容。
背景信息
您可以直接从 Swift 使用一些系统 API,但其他则不行。区别在于有些是作为模块提供的,而有些则不是。网络接口周围的 API 没有公开为模块,这意味着您必须自己定义一个模块才能从 Swift 使用它们。我在一篇博客文章中详细记录了这个问题。
安装
此库可以通过 CocoaPods、Carthage 和 Swift 包管理器进行安装。
使用
本模块只包含一个类:Interface
。此类表示网络接口。有一个静态方法用于列出所有接口,有些意外的命名为allInterfaces()
。这将返回一个包含Interface
对象的数组,其中包含IP地址、家族、是否启动和运行等属性。
请注意,既支持IPv4接口也支持IPv6接口。
许可证
本项目发布在MIT许可证下。