Python의 표준 라이브러리를 이용해 로컬 IP 주소 찾기
소개
로컬 IP 주소를 찾는 것은 네트워크 프로그래밍에서 자주 필요한 작업입니다. 이 문서에서는 Python의 표준 라이브러리를 사용하여 로컬 IP 주소를 어떻게 찾을 수 있는지에 대해 알아보겠습니다.
socket
라이브러리 활용
Python에서는 socket
라이브러리를 사용하여 IP 주소를 찾을 수 있습니다. 이 라이브러리는 네트워크 연결에 필수적인 여러 기능을 제공합니다.
1
2
3
4
5
6
7
8
import socket
def get_local_ip_address():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
local_ip_address = s.getsockname()[0]
s.close()
return local_ip_address
위의 코드는 socket
라이브러리를 사용하여 로컬 IP 주소를 얻는 간단한 예시입니다. AF_INET
은 IPv4 프로토콜을, SOCK_DGRAM
은 UDP 프로토콜을 사용한다는 것을 의미합니다.
gethostbyname()
함수의 한계
socket
라이브러리에는 gethostbyname()
라는 함수도 있지만, 이 함수는 로컬 IP 주소를 제대로 반환하지 않을 수 있습니다.
1
local_ip_address = socket.gethostbyname(socket.gethostname())
위의 코드는 로컬 IP 주소 대신 127.0.0.1을 반환할 수 있기 때문에, 신뢰할 수 없습니다.
주의사항
socket
라이브러리를 사용할 때는 연결이 실패할 가능성이 있으므로, 예외 처리를 해주어야 합니다.- 다양한 네트워크 환경에서 테스트를 해보는 것이 좋습니다.
결론
Python의 표준 라이브러리인 socket
을 활용하면 로컬 IP 주소를 쉽게 찾을 수 있습니다. 다만, gethostbyname()
함수는 신뢰할 수 없으므로 주의가 필요합니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.