-6 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 14

Количество ip адресов, начиная с start и до end

12.03.2019, 15:23. Показов 2348. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать функцию ips_between(start, end), которая возвращает количество ip адресов, начиная с start и до end, не считая его.
Start и end представляют собой список из четырех целых чисел.

Не могли бы написать решение не в одну строчку и хорошее.Сюда уже скидывал это задание,но мне не совсем понятен алгоритм!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2019, 15:23
Ответы с готовыми решениями:

Функция sum_range(start, end)
Напишите функцию sum_range(start, end), которая суммирует все целые числа от значения «start» до величины «end» включительно. Если...

Сделать фильтр по @start, @end, @fedokrug (хранимка)
CREATE PROCEDURE dbo.Report @start date, @end date, @okrug int AS SELECT TableLogBuildingInfo.dateChange AS Date, ...

Что означают данные строки one.Length = 10; one.Start = 1; one.End = 12;?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Vector { class Program ...

9
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.03.2019, 15:59
ip-адрес — это просто 4-х байтовое число. Разность этих двух чисел и есть количество адресов в диапазоне.

Алгоритм такой:
1) перевести строку вида '127.0.0.1' в (127, 0, 0, 1)
2) вычислить 4-х байтовое число: https://www.cyberforum.ru/cgi-bin/latex.cgi?{127}^{4} + {0}^{3} + {0}^{2} + {1}^{1}
3) …
0
-6 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 14
12.03.2019, 16:52  [ТС]
Вот этот код мне прислали,я так этого не понял...А вы можете написать по своему алгоритму






def ipToInt(ip):
a, b, c, d = ip
return (((((a << 8) + b) << 8) + c) << 8) + d

def ips_between(start, end):
return ipToInt(end) - ipToInt(start)

if __name__ == "__main__":
print(ips_between([192, 168, 0, 0], [192, 168, 255, 255]))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.03.2019, 17:38
a << 8 — это сдвиг бит влево.

Смотри:
Python
1
2
3
4
5
>>> bin(3)
'0b11'
>>> bin(3 << 2)
'0b1100'
>>>
Смысл кода тот же: собрать 4-х байтовое число вместе.

Добавлено через 2 минуты
Python
1
2
>>> bin((192 << 24) + (168 << 16) + (0 << 8) + 0)
'0b11000000101010000000000000000000'
0
-6 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 14
12.03.2019, 17:58  [ТС]
Мы можете прям подробно объяснить алгоритм,который у меня написан?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.03.2019, 18:10
В битовом представлении:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a = aaaaaaaa
b = bbbbbbbb
c = ccccccccc
d = dddddddd
 
# (((((a << 8) + b) << 8) + c) << 8) + d
 
# a << 8
aaaaaaaa00000000
# + b
aaaaaaaabbbbbbbb
# << 8
aaaaaaaabbbbbbbb00000000
# + c
aaaaaaaabbbbbbbbccccccccc
# << 8
aaaaaaaabbbbbbbbccccccccc00000000
# + d
aaaaaaaabbbbbbbbcccccccccdddddddd
0
-6 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 14
12.03.2019, 18:32  [ТС]
Понимаете,мне просто надо для школы,а этот код преподаватель не принимает...
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
12.03.2019, 21:46
а так примет?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
In [1]: import ipaddress
 
In [2]: start = int(ipaddress.IPv4Address('10.0.0.1'))
 
In [3]: end = int(ipaddress.IPv4Address('10.0.10.10'))
 
In [4]: counter = 0
 
In [5]: for _ in range(start, end):
   ...:     counter = counter + 1
 
In [6]: counter
Out[6]: 2569
0
-6 / 0 / 0
Регистрация: 23.02.2019
Сообщений: 14
12.03.2019, 22:13  [ТС]
Просят как-то сделать через return 0...Сижу уже два дня
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
12.03.2019, 22:28
Цитата Сообщение от Danila1710 Посмотреть сообщение
Просят как-то сделать через return 0...Сижу уже два дня
аааа, ну так все понятно тогда... что ж Вы сразу не сказали, что через return 0?..

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import ipaddress
 
def count_ip(start_ip, end_ip):
    start = int(ipaddress.IPv4Address(start_ip))
    end = int(ipaddress.IPv4Address(end_ip))
    
    counter = 0
    for _ in range(start, end):
        counter = counter + 1
    print(counter)
 
    return 0
 
 
if __name__ == "__main__":
    count_ip('10.0.0.0', '10.0.10.204')
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2019, 22:28
Помогаю со студенческими работами здесь

Получить массив End, содержащий значения из массива Start
В массиве Start с четным количеством элементов, содержатся буквы ASCII коды которых, являются случайными целыми числами из диапазона от 65...

Regex - не начало или конец строки / not start or end of line
Час промучался с этим регулярным выражением, и это при том, что оно может понадобиться достаточно часто. Надеюсь, этой темой я сэкономлю...

Суть задачи: реализовать 2 метода - Start() и End(), используя библиотеку <chrono>
Прикол вот чем. Эти методы, Start и End, должны быть чем-то на подобии таймпоинтов: Метод Start должен возвращать текущее время, после...

184 End-to-End error-Количество ошибок чётности во время передачи между кэшем RAM и хостом.
Уважаемые помогите разобратся! Жесткий диск SAMSUNG HD502IJ (500гб), установлена ОС Windows 7 При запуске системы выскакивает окно: ...

Ошибка - End tag 'head' does not match the start tag 'meta'
Собственно сабж. Есть документ xml, я его конвертирую в html и при конвертации вылезает такая вот ошибка. Я не понимаю в чем ошибка: ошибка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru