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 지원이 있습니다.
다음 단계 및 자료
- 챌린지 #74 소스 코드: scripts/validate_ipv4.py
- 메인 저장소: 80-days-of-challenges
- 일일 업데이트: Twitter/X (@Shahrouzlogs)