2
- 網絡地址A:(
172.17.0.0/16
) - 和從主機B的IP地址:(
172.17.0.2/16
)
如何判斷B是否在A?
所有地址在以下形式的字符串變量:[IP address in dot-decimal notation]/[subnet mask]
。我應該嘗試通過操縱字符串來完成它(初始想法)。有不同的道路嗎?
這裏是Python的同一個問題:
,並轉到另一種方法:
172.17.0.0/16
)172.17.0.2/16
)如何判斷B是否在A?
所有地址在以下形式的字符串變量:[IP address in dot-decimal notation]/[subnet mask]
。我應該嘗試通過操縱字符串來完成它(初始想法)。有不同的道路嗎?
這裏是Python的同一個問題:
,並轉到另一種方法:
的Go net package包括以下功能:
這應該涵蓋您的需求。
基於Zoyd的反饋...
https://play.golang.org/p/wdv2sPetmt
package main
import (
"fmt"
"net"
)
func main() {
A := "172.17.0.0/16"
B := "172.17.0.2/16"
ipA,ipnetA,_ := net.ParseCIDR(A)
ipB,ipnetB,_ := net.ParseCIDR(B)
fmt.Println("Network address A: ", A)
fmt.Println("IP address B: ", B)
fmt.Println("ipA : ", ipA)
fmt.Println("ipnetA : ", ipnetA)
fmt.Println("ipB : ", ipB)
fmt.Println("ipnetB : ", ipnetB)
fmt.Printf("\nDoes A (%s) contain: B (%s)?\n", ipnetA, ipB)
if ipnetA.Contains(ipB) {
fmt.Println("yes")
} else {
fmt.Println("no")
}
}
謝謝,我會嘗試使用它們 – tgogos