包含 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。