NetUtils for Swift

Swift Version 4 Swift Version 5 CocoaPods Version Badge License Badge Supported Platforms Percentage Documented Badge Carthage compatible Swift Package Manager compatible Swift Build Xcode Build Join the chat at https://gitter.im/NetUtils-for-Swift/Lobby

一个 Swift 库,旨在简化获取关于您的网络接口及其属性的信息,适用于 iOS、macOS 和 Linux。 这个库是对 BSD API(例如 getifaddrs)的封装,使其易于从 Swift 中使用。

在 macOS 或 iOS 上集成此库的推荐方式是使用 CocoaPods:https://cocoapods.org.cn/pods/NetUtils。 在 Linux 上,我建议使用 Swift Package Manager。

这个库同时适用于 Swift 4 和 Swift 5。

背景信息

一些系统 API 可以直接从 Swift 中使用,但另一些则不能。 区别在于,某些 API 作为模块提供,而某些则不是。 关于网络接口的 API 未作为模块公开,这意味着如果不自己为它们定义一个模块,就无法从 Swift 中使用它们。 我在一篇博客文章中详细记录了这个问题。

安装

该库可以通过 CocoaPods、Carthage 和 Swift Package Manager 进行安装。

用法

该模块仅包含一个类:Interface。 这个类代表一个网络接口。 它有一个静态方法来列出所有接口,有点出乎意料地叫做 allInterfaces()。 这将返回一个 Interface 对象数组,其中包含诸如 IP 地址、系列、它们是否已启动并运行等属性。

请注意,同时支持 IPv4 和 IPv6 接口。

许可证

该项目以 MIT 许可证发布。