🎉 Поздравляем! 🎉
Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.
PythonLib
Питон для всех
Напишите программу, которая принимает лог-файл сервера, находит все уникальные IP-адреса и выводит их количество.
Несколько строк текста, каждая из которых представляет собой запись в логе. IP-адрес всегда является первым элементом в строке и отделен от остальной части пробелом. Ввод завершается когда передается "0".
Корректный IP адрес должен состоять из 4 целых чисел разделенных точкой. И каждое число должно быть в диапазоне от 0 до 256.
Несколько строк. ip всегда пишется в самом начале.
Одно целое число — количество уникальных IP-адресов, найденных во входных данных.
192.168.0.1 -- [10/Jan/2024:13:55:36 +0000] "GET /index.html HTTP/1.1" 200 2326
192.168.0.2 -- [10/Jan/2024:12:11:06 +0000] "GET /index.html HTTP/1.1" 200 1234
192.168.0.1 -- [11/Jan/2024:16:45:21 +0000] "GET /index.html HTTP/1.1" 200 2326
0
2
# Множество для хранения уникальных IP-адресов
unique_ips = set()
while True:
line = input().strip()
# Проверка на завершение ввода
if line == "0":
break
# Пропускаем пустые строки
if not line:
continue
# Извлекаем первый элемент строки (предполагаемый IP)
parts = line.split()
if not parts:
continue
potential_ip = parts[0]
# Проверяем, является ли строка валидным IPv4 адресом
# Разделяем строку по точкам
ip_parts = potential_ip.split('.')
# Должно быть ровно 4 части
if len(ip_parts) != 4:
continue
valid_ip = True
# Проверяем каждую часть IP
for part in ip_parts:
# Каждая часть должна состоять только из цифр
if not part.isdigit():
valid_ip = False
break
# Преобразуем в число и проверяем диапазон (0-255)
num = int(part)
if num < 0 or num > 255:
valid_ip = False
break
# Проверяем, нет ли ведущих нулей (кроме случая, когда число равно 0)
if len(part) > 1 and part[0] == '0':
valid_ip = False
break
# Если IP валиден - добавляем в множество
if valid_ip:
unique_ips.add(potential_ip)
# Выводим количество уникальных IP-адресов
print(len(unique_ips))
🎉 Поздравляем! 🎉
Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.
AD
Реклама
Запускаем ваш код...