如何使用netaddr
庫將ipv4子網掩碼轉換爲cidr表示法?
例子:255.255.255.0 to /24
如何使用netaddr在Python中將子網掩碼轉換爲cidr
4
A
回答
10
使用netaddr
:
>>> from netaddr import IPAddress
>>> IPAddress("255.255.255.0").netmask_bits()
24
你也可以做到不使用任何庫,只是在網絡掩碼的二進制表示計數1位:
>>> netmask = "255.255.255.0"
>>> sum([bin(int(x)).count("1") for x in netmask.split(".")])
24
+0
是否可以在一個班輪中完成反向即cidr到網絡掩碼? –
+1
@Bilal檢查這個[post](https://stackoverflow.com/q/23352028/244297)。 TLDR:'netmask ='。'。join([str((0xffffffff <<(32-prefix)>> i)&0xff)for [24,16,8,0]])'' –
2
>>> IPNetwork('0.0.0.0/255.255.255.0').prefixlen
24
0
使用以下功能。它速度快,可靠,而且不使用任何庫。
# code to convert netmask ip to cidr number
def netmask_to_cidr(netmask):
'''
:param netmask: netmask ip addr (eg: 255.255.255.0)
:return: equivalent cidr number to given netmask ip (eg: 24)
'''
return sum([bin(int(x)).count('1') for x in netmask.split('.')])
相關問題
- 1. 將CIDR轉換爲tcl中的子網掩碼
- 2. CIDR /子網掩碼
- 3. 在C++中將網絡掩碼轉換爲CIDR格式
- 4. 將CIDR地址轉換成子網掩碼和網絡地址
- 5. 如何將CIDR前綴轉換爲Python中的虛線四網掩碼?
- 6. 使用SQL來確定子網掩碼的cidr值
- 7. 如何將int轉換爲位掩碼?
- 8. awk:將子網掩碼轉換爲前綴
- 9. 將子網掩碼「/」符號轉換爲Cisco 0.0.0.0標準
- 10. 網絡掩碼CIDR紅寶石
- 11. Ansible轉換子網掩碼通配符掩碼
- 12. 轉換網絡掩碼php
- 13. 將通配符子網轉換爲最小的cidr子網列表
- 14. 使用子網掩碼
- 15. 如何使用Ruby將IP範圍轉換爲單個CIDR
- 16. 如何使用C++將ipaddress/mask轉換爲CIDR?
- 17. 使用C轉換子網掩碼前綴
- 18. 從IP範圍到CIDR掩碼的轉換
- 19. 給定一個IP地址和子網掩碼,如何計算CIDR?
- 20. 如何將位掩碼轉換爲vb.net中的字節數組
- 21. 如何將字符串轉換爲javascript中的位掩碼?
- 22. netaddr子網的網絡ID
- 23. 將ip數組轉換爲java中最小的cidr子網列表
- 24. 如何使用shedskin將python代碼轉換爲C++代碼?
- 25. 如何將CIDR轉換爲C#中的網絡和IP地址範圍?
- 26. 如何將VBscript轉換爲Python代碼?
- 27. 如何在Java中爲IP地址生成子網掩碼?
- 28. 檢查IP是否在CIDR網絡掩碼(範圍)
- 29. 如何將十進制轉換爲位掩碼?
- 30. 如何將位掩碼Int轉換爲一組Ints?
試一試,告訴我們你做了什麼/嘗試了什麼。 – TemporalWolf