Go/GoLang での IP アドレス範囲の確認
Go で IP アドレスを操作する場合、指定されたアドレス範囲が指定されたかどうかを確認する必要がある場合があります。 IP アドレスは特定の範囲内にあります。このタスクは、Go の組み込み関数を使用して簡単かつ効率的に行うことができます。
IP アドレスが範囲内にあるかどうかを確認するには、次の手順に従います。
1. IP アドレスをバイトに変換:
net.ParseIP 関数を使用して、範囲の開始 IP アドレスと終了 IP アドレス、および入力 IP アドレスをバイト スライスに変換します。この関数は、IP アドレスのバイゲンディアン バイト スライス表現である IP タイプを返します。
2.バイト スライスの比較:
bytes.Compare を使用して、入力 IP アドレスと範囲の開始および終了 IP アドレスのバイト スライスを比較します。この関数は、バイト スライスの相対的な順序を示す整数を返します。
コード例:
次のコードは、bytes.Compare:
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") }
以上がGoでIPアドレスが特定の範囲内にあるかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。