使用去语言实现IP段范围校验的方法

  介绍

本篇文章给大家分享的是有关使用去语言实现IP段范围校验的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>解决方案

<强>计划点分十进制范围区分

简单来讲,就是将IPv4原有的四段,分别对比IP地址,查看每一段是否在IP段范围内,可以用于段控制在每一个特定段0 ~ 255内筛选,例如:

192.123.1.0 ~ 192.123.156.255

这样的比较规范的特定段可以实现简单的筛选,但是问题来了,不规则的连续IP段怎么排除?如下:

IP段:192.168.1.0 ~ 192.172.3.255
IP: 192.160.0.255

这样就会出现问题,可以看到按照简单的分段对比,很明显校验不通过,但是这个IP还是存在在IP段中,方案只能针对统一分段下规则的IP段才可以区分。

<强> B计划转整型对别

IP地址可以转换为整数,可以将IP范围化整为整数范围进行排查。

这种方式只需要将授为范围内的地址转换为整数,就可以将IP排查在外了。

代码

以下是示例代码:

主要包
  
  导入(
  “fmt"
  “strconv"
  “strings"
  )
  
  函数main () {
  ipVerifyList:=?92.168.1.0-192.172.3.255"
  知识产权:=?92.170.223.1"
  ipSlice:=字符串。分割(ipVerifyList,“-”)
  如果len (ipSlice) & lt;0 {
  返回
  }
  如果ip2Int (ip)祝辞=ip2Int (ipSlice [0]),,ip2Int (ip) & lt;=ip2Int (ipSlice [1]) {
  fmt.Println (“ip在iplist")
  返回
  }
  fmt.Println (“ip不在iplist")
  }
  
  字符串函数ip2Int (ip) int64 {
  如果len (ip)==0 {
  返回0
  }
  :=字符串。分割(ip,“!”)
  如果len(比特)& lt;4 {
  返回0
  }
  b0:=string2Int(位[0])
  b1:=string2Int(位[1])
  b2:=string2Int(位[2])
  b3:=string2Int(位[3])
  
  var和int64
  和+=int64 (b0) & lt; & lt;24
  和+=int64 (b1) & lt; & lt;16
  和+=int64 (b2) & lt; & lt;8
  和+=int64 (b3)
  
  返回总和
  }
  
  func string2Int(字符串)(int) {
  ,_=strconv.Atoi(中)
  返回
  }

以上就是使用去语言实现IP段范围校验的方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

使用去语言实现IP段范围校验的方法