2025-09-03 13:20:23 +02:00

23 lines
633 B
Python

import re
import ipaddress
def is_private_ip(ip_addr):
try:
return ipaddress.ip_address(ip_addr).is_private
except ValueError:
return False
def parse(text):
ipv4_regex = r'\b(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b'
matches = []
for match in re.finditer(ipv4_regex, text):
ip_addr = match.group()
if is_private_ip(ip_addr):
start_pos, end_pos = match.span()
matches.append((ip_addr, start_pos, end_pos))
return matches