Day 74: Python IPv4 주소 검증 – 완벽한 IP 확인을 위한 문자열 파싱 마스터리 (라이브러리 없이)

발행: (2025년 12월 24일 오후 11:57 GMT+9)
2 min read
원문: Dev.to

Source: Dev.to

Day 74 요약: IPv4 검증 함수 핵심 포인트

함수 설계: 분할 및 기본 개수 검사

def is_valid_ipv4(ip: str) -> bool:
    """Return True if the given string is a valid IPv4 address."""
    parts = ip.split(".")  # split address into parts

    if len(parts) != 4:
        return False  # IPv4 must have exactly 4 parts

루프 처리: 각 파트 규칙 검증

    for part in parts:
        if part == "":
            return False               # empty segment is invalid

        if not part.isdigit():
            return False               # must contain digits only

        if len(part) > 1 and part[0] == "0":
            return False               # no leading zeros allowed

        value = int(part)
        if value  255:
            return False               # each part must be in range 0–255

    return True

메인 인터랙티브: 입력 및 Bool 출력

ip = input("Enter an IPv4 address: ").strip()
result = is_valid_ipv4(ip)

print(f"Is valid IPv4: {result}")

요약 및 회고

이 IPv4 검증기는 split과 단계별 규칙을 활용해 정확한 검사를 수행합니다.

  • 초기 파싱 – 분할을 통해 구조를 빠르게 필터링합니다.
  • 규칙 레이어 – 빈 구간, 숫자 전용, 앞선 0, 범위 검사를 순차적으로 적용합니다.
  • 외부 라이브러리 없음 – 수동 검증을 통해 문자열 파싱과 숫자 제약에 대한 이해를 깊게 합니다.

잠재적인 확장으로는 서브넷 검증이나 IPv6 지원이 있습니다.

다음 단계 및 자료

Back to Blog

관련 글

더 보기 »

주간 챌린지: 새해, 새로운 도전

새해 복 많이 받으세요, 여러분. 각 주마다 Mohammad S. Anwar가 The Weekly Challenge https://theweeklychallenge.org/를 보내며, 우리 모두가 해결책을 생각해볼 기회를 제공합니다.