🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
编写一个程序,接收服务器日志文件,找出所有唯一的IP地址并显示其数量。
rn
几行文本,几行文本,几行。每一行都是日志中的一条记录。IP地址始终是行中的第一个元素,并通过空格与其余部分分隔。当输入“0”时,输入结束。
若干行。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
广告
正在运行代码...