Swift IP 地址库

包含 IP 地址和网络的类型的库。

import IPAddress

IPv4Network(string: "10.0.0.0/8").contains(ipaddress: IPv4Address(string: "10.1.0.1")

包含此库

更新你的 Package.swift 文件,包含以下几行。

let package = Package(
    dependencies: [
        .package(url: "https://github.com/fdebrabander/swift-ipaddress.git", from: "0.0.1"),
    ],
    targets: [
        .target(
            dependencies: ["IPAddress"]
        )
    ]
)

快速指南

创建 IPv4Address 和 IPv4Network 对象

let ip1 = try IPv4Address(string: "192.168.0.1")
let ip2 = try IPv4Address(string: "10.0.0.1")
let network = try IPv4Network(string: "10.0.0.0/8")

比较 IP 地址

assert(ip1 != ip2, "should not match")

确定网络是否包含 IP 地址

assert(network.contains(ipaddress: ip2), "should contain ip")

不同类型之间的转换

// Create an IPv4Network for network 192.168.0.0/16
let ip = try IPv4Address(string: "192.168.1.10")
ip.network(withPrefix: 16)

有关完整文档,请参阅 Swift Package Index