【发布时间】:2016-05-13 00:38:22
【问题描述】:
所以我试图用一些二进制字符串读入一个文件,即: 10000010 00000000 0000**** ********。该脚本会将 * 转换为 0 和 1,因此会有两个如下所示的二进制字符串:
10000010 00000000 00000000 00000000 和 10000010 00000000 00001111 11111111。
然后脚本会将它们转换为 ip 地址,所以在这个例子中,我的脚本应该返回 130.0.0.0 和 130.0.15.255
这是我目前的代码:
def main():
text=open('filename', 'r').readlines()
for line in text:
words = line.split(" ")
words_2=list(words)
for char in words:
low_range=char.replace('*','0')
conversion=str(int(low_range, 2))
decimal='.'.join(map(str,conversion))
print(decimal)
for char in words_2:
high_range=char.replace('*','1')
conversion_2=str(int(high_range, 2))
decimal='.'.join(map(str,conversion_2))
print(decimal)
main()
当我运行我的代码时,它会打印出来:
1.3.0
0
0
0
1.3.0
0
6.3
2.5.5
1.3.0
0
6.4
0
1.3.0
0
9.5
2.5.5
1.3.0
0
1.2.8
0
1.3.0
0
1.9.1
2.5.5
1.3.0
0
1.3.0
0
1.9.2
0
1.3.0
0
2.5.5
2.5.5
当我真的想打印出来时:
130.0.0.0
130.0.63.255
130.0.64.0
130.0.95.255
130.0.128.0
130.0.191.255
130.0.192.0
130.0.255.255
谁能帮助解释我做错了什么?
【问题讨论】:
标签: python networking binary ip