介绍
本篇文章给大家分享的是有关使用去语言实现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段范围校验的方法