Я пытаюсь преобразовать 4 введенных октета IP-адреса в их двоичную форму. Это только часть кода для преобразования первого октета в его 8-битную форму. «oc» - октет - я исправлю имена переменных, когда я получу эту работу.Преобразование ip в двоичный
remainder = 0
bits = (128,64,32,16,8,4,2,1)
binary = [0,0,0,0,0,0,0,0]
oc = int(input("Enter oc1: "))
if oc > 256:
print("Only 256 or less")
if oc > bits[0] or oc == bits[0]:
binary[0] = 1
remainder = remainder + oc - bits[0]
print(binary)
print(remainder)
elif oc < bits[0]:
binary[0] = 0
print(binary)
if remainder > bits[1] or remainder == bits[1]:
binary[1] = 1
remainder = remainder - bits[1]
print(binary)
print(remainder)
elif oc < bits[1]:
binary[1] = 0
print(binary)
if remainder > bits[2] or oc == bits[2]:
binary[2] = 1
remainder = remainder - bits[2]
print(binary)
print(remainder)
elif oc < bits[2]:
binary[2] = 0
print(binary)
Когда я вхожу 128 или более, как октет, я получаю успешный выход.
Например: Ввод «192» отобразит «1,1,0,0,0,0,0,0», но все, что ниже 128, а выход - все нули.
Уверен, я мог бы использовать цикл для большей части этого, но не знаю, как это сделать.
Вы смотрели на [IPAddress] (https: // docs.python.org/3/library/ipaddress.html#module-ipaddress)? –
Я ничего не вижу в преобразовании ip в его двоичную форму. Просто пытаюсь создать эту программу для удобства, которое она принесет при преобразовании ip в двоичный файл @PeterWood – l30n1d45