Bagaimana untuk Memeriksa dengan Cekap sama ada Alamat IP Jatuh Dalam Julat dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-10 07:25:02
asal
870 orang telah melayarinya

How to Efficiently Check if an IP Address Falls Within a Range in Go?

Semakan Julat IP Pantas Masuk Go

In Go, dengan cekap menentukan sama ada alamat IP berada dalam julat tertentu adalah penting untuk pengurusan rangkaian dan tugas keselamatan. Artikel ini meneroka pendekatan paling pantas untuk menangani cabaran ini.

Cara yang cekap untuk menyemak sama ada alamat IP berada dalam julat tertentu ialah membandingkannya dengan titik akhir julat menggunakan bait.Bandingkan fungsi. Alamat IP diwakili sebagai hirisan []bait bigendian dalam Go, menjadikan perbandingan ini tepat.

Contoh kod di bawah menunjukkan pendekatan ini:

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

Kod ini menghasilkan output berikut:

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

Ringkasnya, menggunakan bait.Bandingkan untuk membandingkan alamat IP dalam semakan julat ialah kaedah yang paling cekap dalam Go, membolehkan ketepatan dan penentuan pantas.

Atas ialah kandungan terperinci Bagaimana untuk Memeriksa dengan Cekap sama ada Alamat IP Jatuh Dalam Julat dalam Go?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan