IP 주소가 지정된 범위 내에 속하는지 확인하는 것은 네트워킹 애플리케이션의 일반적인 요구 사항입니다. Go/GoLang에서는 IP 주소의 고유한 숫자 표현을 사용하여 이를 효율적으로 달성할 수 있습니다.
IP 주소를 표현하기 위해 Go는 빅엔디안 바이트 슬라이스를 활용하여 bytes.Compare를 사용한 편리한 비교 방법을 제공합니다. 이 접근 방식을 사용하면 문자열 구문 분석이나 복잡한 정규 표현식이 필요하지 않습니다.
216.14.49.184~216.14.49.191로 정의된 IP 범위를 생각해 보세요. 216.14.49.185와 같은 입력 IP 주소가 이 범위에 속하는지 확인하려면 다음 코드를 활용할 수 있습니다.
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") }
이 스크립트는 다음을 사용하여 IP 주소를 확인하고 분류하여 이 접근 방식의 효율성을 보여줍니다. 용이성:
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
결론적으로 이 방법은 네트워킹 애플리케이션을 위한 귀중한 도구인 Go/GoLang의 지정된 범위에 대해 IP 주소를 검증하는 간편하고 효율적인 수단을 제공합니다.
위 내용은 Go/GoLang에서 IP 범위를 효율적으로 검증하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!