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

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

DDD
Lepaskan: 2024-11-13 06:44:02
asal
827 orang telah melayarinya

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")
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan