Python:将网络位转换为二进制
Posted
技术标签:
【中文标题】Python:将网络位转换为二进制【英文标题】:Python: Convert Networks bits to Binary 【发布时间】:2020-10-20 16:53:12 【问题描述】:所以我想将网络位(CIDR)转换为二进制
我试图在谷歌上搜索,但它什么也没给我,只给我 ipcalculator 和其他东西
但我读了一些文章,告诉我如何将十进制转换为二进制
问题是我需要弄清楚如何将网络位更改为十进制
for example i use 28(/28) the netmask should be 255.255.255.240 i just want to use the 240
so that i can convert it to binary it should give me 11110000
我试图在谷歌上查找如何做到这一点,但只告诉我如何将二进制转换为十进制
谁能给我一个链接或教我怎么做
或者有另一种方法,比如我不必将网络位转换为十进制
我会不断更新我的进度
【问题讨论】:
我现在尝试使用 list、array 和 dict 方法,所以我不必将网络位转换为十进制 IPv4 掩码和 IPv4 地址一样,实际上是一个 32 位无符号整数,点分十进制表示法只是为了便于人类阅读。八位字节没有意义。您可以将掩码设置为0xffffffff
并将其向左移动(32 - length)
次,然后将其转换为二进制字符串,对于28
的掩码长度,您将得到0b11111111111111111111111111110000
。此时,您可以获取字符串的任何部分,例如,最后八个字符将是掩码的最后一个八位字节。
【参考方案1】:
试试这个:
mask = "255.255.255.240"
#Last_char takes the last 3 digits of ur mask
last_char = int(mask[-3])
#Then it converts it to binary
dec_to_bin = bin(last_char)
#There is the result
print (dec_to_bin)
输出应该是:0b10
【讨论】:
如果我的回答有帮助请告诉我@Zaxmittas以上是关于Python:将网络位转换为二进制的主要内容,如果未能解决你的问题,请参考以下文章