문제 › 027

027. IP 주소 분석기

Medium 바이브코딩 MCPNetworkUtility
문제 설명
[문제] IP 주소를 분석하는 MCP 서버를 구현한다. IPv4(예: "192.168.1.1")와 IPv6 주소를 모두 다룬다. CIDR이란 "x.x.x.x/n" 형식으로 네트워크 범위를 나타내는 표기다. /n의 n은 앞에서부터 고정되는 비트 수이며, 이 범위의 첫 주소가 네트워크 주소, 마지막 주소가 브로드캐스트 주소다. 예를 들어 "192.168.1.0/24"는 192.168.1.0 ~ 192.168.1.255 범위다. 사설(private) IP란 인터넷에 직접 노출되지 않는 내부망 전용 대역으로, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 등이 해당한다. [구현할 함수] - parse_ip(ip: str) -> List[str] IP 주소를 받아 [주소문자열, 버전] 2원소 배열을 반환한다. 버전은 "IPv4" 또는 "IPv6". - is_private(ip: str) -> bool IP가 사설 대역에 속하면 True, 아니면 False를 반환한다. - cidr_range(cidr: str) -> List[str] "x.x.x.x/n" 형식을 받아 [네트워크주소, 브로드캐스트주소] 2원소 배열을 반환한다. [힌트] IP 주소 라이브러리 사용 — 주소 파싱/버전 판별/사설 여부/네트워크 범위 계산 (Python: ipaddress / C++: Boost.Asio 또는 직접 구현 / Java: java.net.InetAddress). [예시] parse_ip("192.168.1.1") -> ["192.168.1.1", "IPv4"] is_private("10.0.0.1") -> True is_private("8.8.8.8") -> False cidr_range("192.168.1.0/24") -> ["192.168.1.0", "192.168.1.255"]
로그인하고 풀기 AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.