이 튜토리얼에서는 파이썬(Python)의 socket 모듈을 사용하여 클라이언트의 IP 주소를 확인하는 방법을 알아봅니다. 노트북, 스마트폰, 태블릿 등 모든 네트워크 기기에는 고유한 IP 주소가 할당되어 있으며, 파이썬의 socket 모듈을 활용하면 이를 손쉽게 조회할 수 있습니다.
동작 원리 및 알고리즘
IP 주소를 확인하는 과정은 다음과 같은 단계로 진행됩니다.
1. socket 모듈을 임포트한다. 2. socket.gethostname() 메서드로 호스트명을 가져와 변수에 저장한다. 3. 호스트명을 인자로 전달하여 socket.gethostbyname() 메서드를 호출하고, 반환된 IP 주소를 변수에 저장한다. 4. 호스트명과 IP 주소를 출력한다.
예제 코드
위 알고리즘을 실제 코드로 구현하면 다음과 같습니다.
## socket 모듈 임포트
import socket
## socket.gethostname() 메서드로 호스트명 가져오기
hostname = socket.gethostname()
## socket.gethostbyname() 메서드로 IP 주소 가져오기
ip_address = socket.gethostbyname(hostname)
## 호스트명과 IP 주소 출력
print(f"Hostname: {hostname}")
print(f"IP Address: {ip_address}")실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Hostname: DESKTOP-A0PM5GD IP Address: 192.168.43.15
추가 팁
socket.gethostbyname()은 IPv4 주소만 반환합니다. IPv6 주소까지 함께 확인하려면 socket.getaddrinfo() 함수를 사용하는 것이 좋습니다. 또한 이 방식으로 얻는 IP 주소는 내부 네트워크(사설 IP) 기준이며, 외부에서 보이는 공인 IP 주소와는 다를 수 있다는 점을 참고하세요.
마무리
지금까지 파이썬의 socket 모듈을 활용해 클라이언트의 호스트명과 IP 주소를 확인하는 방법을 살펴보았습니다. 몇 줄의 코드만으로도 네트워크 정보를 쉽게 조회할 수 있습니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.