Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengesahkan Julat IP dengan Cekap dalam Go/GoLang?

Bagaimana untuk Mengesahkan Julat IP dengan Cekap dalam Go/GoLang?

DDD
DDDasal
2024-11-13 06:44:02780semak imbas

How to Efficiently Validate IP Ranges in Go/GoLang?

Pengesahan Julat IP yang Cekap dalam Go/GoLang

Menentukan sama ada alamat IP berada dalam julat yang ditentukan ialah keperluan biasa dalam aplikasi rangkaian. Dalam Go/GoLang, ini boleh dicapai dengan cekap menggunakan perwakilan angka yang wujud bagi alamat IP.

Untuk mewakili alamat IP, Go menggunakan kepingan bait bigendian, menyediakan kaedah yang sesuai untuk perbandingan menggunakan bait.Bandingkan. Pendekatan ini menghapuskan keperluan untuk penghuraian rentetan atau ungkapan biasa yang kompleks.

Pertimbangkan julat IP yang ditakrifkan sebagai 216.14.49.184 hingga 216.14.49.191. Untuk mengesahkan sama ada alamat IP input, seperti 216.14.49.185, tergolong dalam julat ini, kami boleh memanfaatkan kod berikut:

package main

import (
    "bytes"
    "fmt"
    "net"
)

var (
    ip1 = net.ParseIP("216.14.49.184")
    ip2 = net.ParseIP("216.14.49.191")
)

func check(ip string) bool {
    trial := net.ParseIP(ip)
    if trial.To4() == nil {
        fmt.Printf("%v is not an IPv4 address\n", trial)
        return false
    }
    if bytes.Compare(trial, ip1) >= 0 && bytes.Compare(trial, ip2) <= 0 {
        fmt.Printf("%v is between %v and %v\n", trial, ip1, ip2)
        return true
    }
    fmt.Printf("%v is NOT between %v and %v\n", trial, ip1, ip2)
    return false
}

func main() {
    check("1.2.3.4")
    check("216.14.49.185")
    check("1::16")
}

Skrip ini menunjukkan kecekapan pendekatan ini, mengesahkan dan mengelaskan alamat IP dengan kemudahan:

1.2.3.4 is NOT between 216.14.49.184 and 216.14.49.191
216.14.49.185 is between 216.14.49.184 and 216.14.49.191
1::16 is not an IPv4 address

Kesimpulannya, kaedah ini menyediakan cara yang diperkemas dan cekap untuk mengesahkan alamat IP terhadap julat tertentu dalam Go/GoLang, alat yang tidak ternilai untuk aplikasi rangkaian.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Julat IP dengan Cekap dalam Go/GoLang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn