Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 IP 주소에서 선행 0(앞자리 0) 제거하기

네트워크 작업을 하다 보면 200.040.009.400처럼 각 옥텟에 불필요한 선행 0(leading zero)이 포함된 IP 주소를 만나게 됩니다. 이런 형식은 표준 표기법과 다르기 때문에 정규화가 필요합니다. 이번 글에서는 파이썬을 이용해 IP 주소의 선행 0을 손쉽게 제거하는 방법을 알아보겠습니다.

문제 이해하기

핵심 아이디어는 간단합니다. 먼저 IP 주소 문자열을 마침표(.)를 기준으로 분리한 뒤, 각 부분을 정수로 변환하면 자동으로 선행 0이 사라집니다. 그다음 다시 문자열로 바꾸고 마침표로 연결하면 됩니다.

예제

입력 : 200.040.009.400
출력 : 200.40.9.400

알고리즘

1단계 : IP 주소를 입력받는다.
2단계 : 마침표(".")를 기준으로 IP 주소를 분리한다.
3단계 : int() 함수를 사용해 각 문자열을 정수로 변환한다. (이 과정에서 선행 0이 자동으로 제거됨)
4단계 : str() 함수로 다시 문자열로 변환한다.
5단계 : join() 함수를 사용해 마침표로 연결하여 최종 결과를 만든다.

예제 코드

# IP 주소에서 선행 0을 제거하고 출력하는 파이썬 프로그램

# 선행 0을 제거하는 함수
def IP(ip):
zeroip = ".".join([str(int(i)) for i in ip.split(".")])
return zeroip

# 드라이버 코드
ip = input("Enter the IP address ::>")
print("New Ip Address ::>", IP(ip))

코드 설명

위 코드의 핵심은 리스트 컴프리헨션(list comprehension)입니다. ip.split(".")로 문자열을 나눈 후, 각 조각에 int()를 적용해 정수로 변환합니다. 파이썬에서 정수는 앞자리 0을 저장하지 않으므로 이 단계에서 선행 0이 모두 사라집니다. 이후 str()로 다시 문자열화하고 join()으로 합치면 깔끔한 IP 주소가 완성됩니다.

실행 결과

Enter the IP address ::>200.006.020.900
New Ip Address ::> 200.6.20.900

마무리

이처럼 파이썬의 내장 함수만 활용하면 복잡한 문자열 처리 없이도 IP 주소의 선행 0을 몇 줄의 코드로 간단히 제거할 수 있습니다. 입력 데이터의 형식을 표준화해야 하는 네트워크 관련 프로젝트에서 유용하게 활용해 보세요.