簡體   English   中英

有沒有辦法在 python 中將 cidr 轉換為子網掩碼? 我嘗試在線搜索但沒有得到確切的答案

[英]Is there a way of converting cidr to subnet mask in python ? I tried searching online but not getting the Exact answer

我的 output 是

打印(網絡)

['10.202.224.0/24', '10.4.40.0/23', '10.3.41.0/24', '10.4.42.0/21']

這可以以某種方式轉換為

['10.202.224.0/255.255.255.0', '10.4.40.0/255.255.254.0', '10.4.41.0/255.255.255.0', '10.4.42.0/255.255.248.0']

任何有助於將 cidr 轉換為掩碼的東西。

提前致謝

您可以查看 python 代碼,點擊下面的鏈接可能會對您有所幫助:這是要關注的鏈接

代碼是:

import socket
import struct

def cidr_to_netmask(cidr):
    network, net_bits = cidr.split('/')
    host_bits = 32 - int(net_bits)
    netmask = socket.inet_ntoa(struct.pack('!I', (1 << 32) - (1 << host_bits)))
    return network, netmask

用法:

>>> cidr_to_netmask('10.10.1.32/27')
('10.10.1.32', '255.255.255.224')
>>> cidr_to_netmask('208.128.0.0/11')
('208.128.0.0', '255.224.0.0')
>>> cidr_to_netmask('208.130.28.0/22')
('208.130.28.0', '255.255.252.0')

暫無
暫無

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

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