Я не уверен на сто процентов о том, как pytricia обрабатывает оператор in
, однако ...
, если ожидается, что pytricia
увидит, присутствует ли подсеть в другой подсети, тогда... имейте в виду, что 0.0.0.0/0
является маршрутом с четырьмя нулями и по сути является подсетью, которая содержит все остальные подсети.
Таким образом, если 0.0.0.0/0
находится в prefix_list
и если pytricia
проверяет, включена ли данная подсеть (то есть 10.0.0.0/8
) полностью в какую-либо из подсетей в pytricia
prefix_list
, то, предположительно, любой список префиксов, который содержит нулевой маршрут Quad, будет автоматически включать все другие подсети и всегда будет возвращать True
.
Как пример:
Если я создаю меньшийprefix_list
без Quad Zero Route и затем проверьте, полностью ли содержится данная подсеть (то есть 172.16.0.0/13
) в этом prefix_list, тогда мы получим True
, как и ожидалось, поскольку данная подсеть содержится в 172.16.0.0/12
.
>>> for subnet in ["172.16.0.0/12", "192.168.0.0/16"]:
prefix_list.insert(subnet, "permit")
>>> ip_network("172.16.0.0/13") in prefix_list
True