簡體   English   中英

如何在python3中轉換為cidr?

[英]how do you convert to cidr in python3?

我的IP地址為1.2.3.4,子網掩碼為255.255.255.0

我想將此轉換為cidr符號1.2.3.4/24

如何在Python3中執行此操作?

使用標准庫中的ipaddress模塊。


地址加上網絡掩碼是網絡或接口,而不是地址。 假設您已經設置了一些主機位(它是1.2.3.4,而不是1.2.3.0),那么您要么擁有接口,要么擁有網絡的非規范名稱。 我假設它是一個接口,所以使用ip_interface

>>> i = ipaddress.ip_interface('1.2.3.4/255.255.255.0')

或者,如果您要確保它明確是IPv4而不是IPv6:

>>> i = ipaddress.IPv4Interface('1.2.3.4/255.255.255.0')

或者,您也可以使用地址和網絡來組成它,而不用組合字符串來組成它。 這取決於您以何種格式獲取此信息以及什么對您有意義。


要獲取CIDR格式,請使用with_prefixlen訪問器:

>>> i.with_prefixlen
'1.2.3.4/24'

您還可以進行其他各種i.address操作-將地址( 1.2.3.4 )提取為i.address ,或將網絡( 1.2.3.0/24i.networki.network ,或者通過將i.network枚舉來枚舉網絡上的所有地址。 i.network作為序列,等等。

您可以使用IPy庫執行此操作。 如果向下滾動到文檔,則可以看到它可以進行的字符串轉換。 我們追求的是strNormal(1)

IP("1.2.3.4/255.255.255.0").strNormal(1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM