Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Semak sama ada Alamat IP berada dalam Julat Tertentu dalam Go?

Bagaimana untuk Semak sama ada Alamat IP berada dalam Julat Tertentu dalam Go?

Patricia Arquette
Lepaskan: 2024-11-26 01:53:09
asal
479 orang telah melayarinya

How to Check if an IP Address is Within a Specific Range in Go?

Menyemak Julat Alamat IP dalam Go/GoLang

Apabila bekerja dengan alamat IP dalam Go, anda mungkin menghadapi keperluan untuk menentukan sama ada yang diberikan Alamat IP berada dalam julat tertentu. Tugasan ini menjadi mudah dan cekap dengan fungsi terbina dalam Go.

Untuk menyemak sama ada alamat IP berada dalam julat, ikut langkah berikut:

1. Tukar Alamat IP kepada Bait:

Tukar julat alamat IP mula dan tamat, serta alamat IP input, kepada kepingan bait menggunakan fungsi net.ParseIP. Fungsi ini mengembalikan jenis IP, yang merupakan perwakilan hirisan bait bigendian bagi alamat IP.

2. Bandingkan Kepingan Bait:

Gunakan bait.Bandingkan untuk membandingkan kepingan bait alamat IP input dan julat alamat IP mula dan tamat. Fungsi ini mengembalikan integer yang menunjukkan susunan relatif hirisan bait:

  • Jika bait.Banding(input, mula) >= 0, alamat IP input lebih besar daripada atau sama dengan permulaan julat.
  • Jika bait.Bandingkan(input, akhir) <= 0, alamat IP input adalah kurang daripada atau sama dengan penghujung julat.

Kod Contoh:

Kod berikut menunjukkan cara menyemak sama ada alamat IP berada dalam julat menggunakan bait.Bandingkan:

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")
}

Dalam contoh ini, fungsi semak mula-mula cuba menghuraikan alamat IP input. Jika ia bukan alamat IPv4 yang sah, ia mengembalikan mesej ralat. Jika tidak, ia membandingkan kepingan bait alamat IP input dengan alamat IP mula dan akhir julat menggunakan bait.Bandingkan. Ia kemudian mencetak hasil dan mengembalikan boolean yang menunjukkan sama ada alamat IP input berada dalam julat.

Dengan menggunakan bait.Bandingkan, Go menyediakan cara yang cekap dan mudah untuk menyemak sama ada alamat IP berada dalam julat yang ditentukan , menjadikannya alat yang berharga untuk tugasan manipulasi alamat IP.

Atas ialah kandungan terperinci Bagaimana untuk Semak sama ada Alamat IP berada dalam Julat Tertentu 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