iOS - 检查掩码ip是否有效(在ip范围内)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS - 检查掩码ip是否有效(在ip范围内)相关的知识,希望对你有一定的参考价值。

所以我想弄清楚如何根据ip验证掩码ip(在范围内?)。我似乎无法像在java中那样在swift中找到工具:

How can I detect if an IP is in a network?

答案
let ip = "192.168.2.0"
let net = "192.168.1.0"
let pref = 24

func convertIpToInt(_ ipAddress: String) -> Int? {
   var result = 0.0
   let ipAddressArray = ipAddress.components(separatedBy: ".").compactMap { 
      Double($0) }
   guard ipAddressArray.count == 4 else { return nil }
   for (index, element) in ipAddressArray.enumerated() {
      result += element * pow(256, Double(3 - index))
   }

   return Int(result) > 0 ? Int(result) : nil
}

let ipInt = convertIpToInt(ip)
let netInt = convertIpToInt(net)
let brkstInt = netInt! + Int(pow(2, Double(32-pref))) - 1


print(ipInt! >= netInt! && ipInt! <= brkstInt) // false

以上是关于iOS - 检查掩码ip是否有效(在ip范围内)的主要内容,如果未能解决你的问题,请参考以下文章

检查 IP 是不是在 CIDR 网络掩码(范围)中

检查 IP 地址是不是在范围/子网内的标准/安全方法

sql 检查IP是否在指定的IP范围内。

如何检查IP地址在PHP的两个IP范围内?

如何检查一个IP地址是不是在PHP中的两个IP范围内?

计算机网络-将C网192.168.25.0划分四个子网,计算每个子网的有效IP地址范围和对应网络掩码