swift-ip 库是一个可移植的、不依赖 Foundation 框架的库,用于处理 IP 地址。它提供了用于解析和格式化 IP 地址的工具、用于执行高效 IP 地址查找的数据结构,以及用于与其他库(例如 SwiftNIO)的类型兼容的垫片。
该库的目标之一是允许其他库以零开销交换强类型值,而无需回退到原始整数表示形式或链接大型框架。
swift-ip 库需要 Swift 6.0 或更高版本。这是因为 IP.V6
使用了 UInt128
。
平台 | 状态 |
---|---|
🐧 Linux | |
🍏 Darwin | |
🍏 Darwin (iOS) | |
🍏 Darwin (tvOS) | |
🍏 Darwin (visionOS) | |
🍏 Darwin (watchOS) |
Network
框架定义的 IP 地址类型仅限于 Darwin 平台,这限制了它们在服务器端代码中的使用。
swift-nio 库提供了一个跨平台的 SocketAddress
类型,但它是堆分配和引用计数的,并且需要链接整个 NIOCore
模块。这使得它不适合作为高性能的通用类型用于防火墙实现或指标收集等目的。
Swiftinit 文档索引目前使用 swift-ip 库来验证客户端(例如 Googlebot 和 GitHub Webhooks)并打击滥用行为。
swift-ip 库基于 Apache 2.0 许可证。