Python에서 IP 주소 가져 오기
Shivam Arora
2023년1월30일
-
socket.gethostname()
함수를 사용하여 Python에서 로컬 IP 주소 가져 오기 -
socket.getsockname()
기능을 사용하여 Python에서 로컬 IP 주소 가져 오기 -
netifaces
모듈을 사용하여 Python에서 로컬 IP 주소 가져 오기
IP 주소는 0.0.0.0에서 255.255.255.255까지의 숫자 시퀀스로, 주소 범위는 0에서 255까지입니다. 네트워크를 통해 장치를 고유하게 식별 할 수 있습니다.
이 기사에서는 Python을 사용하여 로컬 IP 주소를 가져옵니다.
socket.gethostname()
함수를 사용하여 Python에서 로컬 IP 주소 가져 오기
Python의socket
모듈을 사용하여 네트워크 연결을 만들고 네트워크를 통해 메시지를 보낼 수 있습니다.
gethostname()
함수는 현재 Python이 실행되고있는 시스템의 호스트 이름을 반환합니다.
예를 들면
import socket
print(socket.gethostbyname(socket.gethostname()))
출력:
192.168.0.118
socket.getsockname()
기능을 사용하여 Python에서 로컬 IP 주소 가져 오기
컴퓨터 장치에 인터넷에 연결된 경로가 있으면getsockname()
함수를 사용할 수 있습니다. 튜플 형태로 IP 주소와 포트를 반환합니다.
아래 코드를 참조하십시오.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])
출력:
192.168.0.112
이 메서드는 로컬 컴퓨터의 기본 IP, 즉 기본 경로를 반환합니다.
이 함수를 사용하여 라우팅 가능한 인터넷 액세스가 필요하지 않은 사용자 정의 함수를 만들 수도 있습니다.
아래 코드를 참조하십시오.
import socket
def extract_ip():
st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
st.connect(("10.255.255.255", 1))
IP = st.getsockname()[0]
except Exception:
IP = "127.0.0.1"
finally:
st.close()
return IP
print(extract_ip())
출력:
192.168.0.112
위의 방법은 모든 인터페이스에서 작동합니다. 또한 모든 공개, 비공개, 외부 IP와 함께 작동합니다. 이 방법은 Linux, Windows 및 OSX에서 효율적입니다.
netifaces
모듈을 사용하여 Python에서 로컬 IP 주소 가져 오기
netifaces
모듈은 네트워크 인터페이스 및 해당 상태에 대한 정보를 제공하는 데 사용됩니다.
아래와 같이 로컬 컴퓨터의 IP 주소를 가져 오는 데 사용할 수 있습니다.
from netifaces import interfaces, ifaddresses, AF_INET
for ifaceName in interfaces():
addresses = [
i["addr"]
for i in ifaddresses(ifaceName).setdefault(AF_INET, [{"addr": "No IP addr"}])
]
print(" ".join(addresses))
출력:
No IP addr
No IP addr
No IP addr
No IP addr
192.168.0.104
127.0.0.1