2014-04-28 42 views

回答

5

你可以這樣說:

def cidr(prefix): 
    return socket.inet_ntoa(struct.pack(">I", (0xffffffff << (32 - prefix)) & 0xffffffff)) 
+0

我在Python 3.4中得到這個錯誤:'struct.error:'我'格式要求0 <=數字<= 4294967295' – planetp

+0

好吧,我已經更新適應錯誤檢查的答案。 –

9

這裏是輕鬆的一面溶液(無模塊依賴):

netmask = '.'.join([str((0xffffffff << (32 - len) >> i) & 0xff) 
        for i in [24, 16, 8, 0]]) 
相關問題