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