ip

Tests Deploy Documentation

swift-ip 库是一个可移植的、不依赖 Foundation 框架的库,用于处理 IP 地址。它提供了用于解析和格式化 IP 地址的工具、用于执行高效 IP 地址查找的数据结构,以及用于与其他库(例如 SwiftNIO)的类型兼容的垫片。

该库的目标之一是允许其他库以零开销交换强类型值,而无需回退到原始整数表示形式或链接大型框架。

文档 · 许可证

要求

swift-ip 库需要 Swift 6.0 或更高版本。这是因为 IP.V6 使用了 UInt128

平台 状态
🐧 Linux Tests
🍏 Darwin Tests
🍏 Darwin (iOS) iOS
🍏 Darwin (tvOS) tvOS
🍏 Darwin (visionOS) visionOS
🍏 Darwin (watchOS) watchOS

检查部署最低要求

为什么使用 swift-ip?

Network 框架定义的 IP 地址类型仅限于 Darwin 平台,这限制了它们在服务器端代码中的使用。

swift-nio 库提供了一个跨平台的 SocketAddress 类型,但它是堆分配和引用计数的,并且需要链接整个 NIOCore 模块。这使得它不适合作为高性能的通用类型用于防火墙实现或指标收集等目的。

谁在使用 swift-ip?

Swiftinit 文档索引目前使用 swift-ip 库来验证客户端(例如 Googlebot 和 GitHub Webhooks)并打击滥用行为。

许可证

swift-ip 库基于 Apache 2.0 许可证。