中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

使用Go語言實(shí)現(xiàn)IP段范圍校驗(yàn)的方法-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)使用Go語言實(shí)現(xiàn)IP段范圍校驗(yàn)的方法,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

在鳩江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,鳩江網(wǎng)站建設(shè)費(fèi)用合理。

解決方案

PLAN A 點(diǎn)分十進(jìn)制范圍區(qū)分

簡單來講,就是將 IPv4 原有的四段,分別對比 IP 地址,查看每一段是否在 IP 段范圍內(nèi),可以用于段控制在每一個特定段 0 ~ 255 內(nèi)篩選,例如:

192.123.1.0 ~ 192.123.156.255

這樣的比較規(guī)范的特定段可以實(shí)現(xiàn)簡單的篩選,但是問題來了,不規(guī)則的連續(xù) IP 段怎么排除? 如下:

IP段:192.168.1.0 ~ 192.172.3.255
IP: 192.160.0.255

這樣就會出現(xiàn)問題,可以看到按照簡單的分段對比,很明顯校驗(yàn)不通過,但是這個 IP 還是存在在 IP 段中,方案只能針對統(tǒng)一分段下規(guī)則的IP段才可以區(qū)分。

PLAN B 轉(zhuǎn)整型對別

IP 地址可以轉(zhuǎn)換為整數(shù),可以將 IP 范圍化整為 整數(shù)范圍進(jìn)行排查。

這種方式只需要將授為范圍內(nèi)的地址轉(zhuǎn)換為整數(shù),就可以將 IP 排查在外了。

代碼

以下是示例代碼:

package main

import (
 "fmt"
 "strconv"
 "strings"
)

func main() {
 ipVerifyList := "192.168.1.0-192.172.3.255"
 ip := "192.170.223.1"
 ipSlice := strings.Split(ipVerifyList, `-`)
 if len(ipSlice) < 0 {
  return
 }
 if ip2Int(ip) >= ip2Int(ipSlice[0]) && ip2Int(ip) <= ip2Int(ipSlice[1]) {
  fmt.Println("ip in iplist")
  return
 }
 fmt.Println("ip not in iplist")
}

func ip2Int(ip string) int64 {
 if len(ip) == 0 {
  return 0
 }
 bits := strings.Split(ip, ".")
 if len(bits) < 4 {
  return 0
 }
 b0 := string2Int(bits[0])
 b1 := string2Int(bits[1])
 b2 := string2Int(bits[2])
 b3 := string2Int(bits[3])

 var sum int64
 sum += int64(b0) << 24
 sum += int64(b1) << 16
 sum += int64(b2) << 8
 sum += int64(b3)

 return sum
}

func string2Int(in string) (out int) {
 out, _ = strconv.Atoi(in)
 return
}

名稱欄目:使用Go語言實(shí)現(xiàn)IP段范圍校驗(yàn)的方法-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://www.rwnh.cn/article14/jdide.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、軟件開發(fā)、微信公眾號網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
麦盖提县| 阳原县| 大渡口区| 玉门市| 衡东县| 天祝| 黄石市| 治多县| 东乡族自治县| 余庆县| 潜江市| 潜山县| 滦南县| 青龙| 沅江市| 西昌市| 临清市| 丹凤县| 临沭县| 扶沟县| 五原县| 海安县| 瑞丽市| 宣武区| 宣武区| 十堰市| 黄陵县| 西平县| 尚志市| 云梦县| 枣阳市| 常熟市| 天长市| 尤溪县| 蓬安县| 涪陵区| 天全县| 新竹市| 鄯善县| 中山市| 广宁县|