因此,我試圖用一些二進制字符串讀取文件,即: 10000010 00000000 0000 **** ********。該腳本將*的轉換爲0和1,所以會有兩個二進制字符串是這樣的:Python將二進制字符串轉換爲虛線格式的IP地址
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
任何人都可以幫助解釋什麼,我做錯了什麼?
非常感謝!完美的作品。假設我想在IP地址與0之間設置查找範圍,並將IP地址設爲1,例如在130.0.0.0-130.0.63.255之間。這會像添加一個「for i in range(ip)」循環一樣簡單嗎? – ojbomb227