컴퓨터 이름을 알아내는 방법?
조회수 5282회
로컬 네트워크에서 쓸 채팅 프로그램을 만들고 있습니다. Window XP, Linux, OS X 같은 이름 말고 유저가 설정한 컴퓨터 이름("뫄뫄의 컴퓨터", "내꺼" 등)을 기준으로 누가 글을 남겼는지 구분하고 싶어요
네트워크는 이미 만들어놨는데 컴퓨터 이름을 알아내는 방법을 모르겠습니다.
1 답변
-
1. socket의 gethostname() 사용
socket.gethostname()는 파이썬 인터프리트가 현재 실행되고 있는 기계의 hostname을 스트링 형태로 return 해줍니다
import socket socket.gethostname()
2. socket의 gethostbyaddr() 사용
gethostbyaddr(ip_address)는
(hostname, aliaslist, ipaddrlist)
을 저장하고 있는 튜플을 return해 줍니다.hostname
: 인자로 들어온 ip_address와 대응하는 hostnamealias list
: 같은 주소에 있는 다른 host name을 저장(대부분의 경우 empty)ipaddrlist
: 같은 host에서 상호작용(interface)하는 IPv4/v6 주소
import socket socket.gethostbyaddr(socket.gethostname())[0]
3. os의 os.uname() 사용
os.uname()은 현재 OS에서 다음의 5개 정보
(sysname, nodename, release, version, machine)
를 받아 이를 튜플로 return합니다.import os myhost = os.uname()[1]
단, 일부 시스템에서
nodename
을 8글자로 제한하는 경우가 있어, 1/2의 방법을 쓰는 것을 권장합니다.
댓글 입력