Форум » Адресация в Интернете » 6846 » Ответить

6846

Rita: В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом 184.178.54.144 и маской сети 255.255.255.240. Сколько в этой сети IP-адресов, у которых в двоичной записи IP-адреса имеется сочетание трех подряд идущих единиц? В ответе укажите только число. mask = (255 << 24) + (255 << 16) + (255 << 8) + 240 print(bin(mask)[2:]) 11111111111111111111111111110000 Номера хостов могут меняться от 0 до 16 три подряд идущие единицы содержат (четвертый байт слева): 10010111 10011100 10011101 10011110 10011111 ответ 16 Где моя ошибка?

Ответов - 1

Ж: Еще 3 единицы есть в 1 байте слева, ['10111000', '10110010', '00110110', '10010000'] так что подойдут все адреса этой сети, т.е 2**4=16 [pre2] adres='184.178.54.144'; print( [ bin(int(ip))[2::].zfill(8) for ip in adres.split('.') ] ) adres='255.255.255.240'; print( [ bin(int(ip))[2::].zfill(8) for ip in adres.split('.') ] ) for c in product('01',repeat=4): if '111' in '10111000'+'10110010'+'00110110'+'1001'+''.join(c): print('10111000'+'10110010'+'00110110'+'1001'+'-'+''.join(c)) [/pre2] >>> ['10111000', '10110010', '00110110', '10010000'] ['11111111', '11111111', '11111111', '11110000'] 1011100010110010001101101001-0000 1011100010110010001101101001-0001 1011100010110010001101101001-0010 1011100010110010001101101001-0011 1011100010110010001101101001-0100 1011100010110010001101101001-0101 1011100010110010001101101001-0110 1011100010110010001101101001-0111 1011100010110010001101101001-1000 1011100010110010001101101001-1001 1011100010110010001101101001-1010 1011100010110010001101101001-1011 1011100010110010001101101001-1100 1011100010110010001101101001-1101 1011100010110010001101101001-1110 1011100010110010001101101001-1111



полная версия страницы