🎉 تهانينا! 🎉
لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.
ProgerLib Python للجميع
تغيير السمة
اكتب برنامجًا يقبل ملف سجل الخادم، ويجد جميع عناوين IP الفريدة ويعرض عددها. & nbsp;
rn
بضعة أسطر من النص، بضعة أسطر من النص، بضعة أسطر. كل منها عبارة عن سجل في السجل. عنوان IP هو دائمًا العنصر الأول في السطر ويتم فصله عن باقي النص بمسافة. ينتهي الإدخال عند إرسال "0".
عدة أسطر. يتم كتابة عنوان IP دائمًا في البداية.
رقم واحد & mdash; عدد عناوين IP الفريدة الموجودة في بيانات الإدخال.
192.168.0.1 - [10/يناير/2024: 13:55:36 +0000] "GET /index.html HTTP/1.1" 200 2326
192.168.0.2 - [10/يناير/2024: 12:11:06 +0000] "GET /index.html HTTP/1.1" 200 1234
192.168.0.1 - [11/يناير/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
إعلان
جارٍ تشغيل الكود...