컴퓨터 이름을 알아내는 방법?


로컬 네트워크에서 쓸 채팅 프로그램을 만들고 있습니다. Window XP, Linux, OS X 같은 이름 말고 유저가 설정한 컴퓨터 이름("뫄뫄의 컴퓨터", "내꺼" 등)을 기준으로 누가 글을 남겼는지 구분하고 싶어요

네트워크는 이미 만들어놨는데 컴퓨터 이름을 알아내는 방법을 모르겠습니다.

  • 2016년 01월 21일에 작성됨

조회수 269


1 답변


좋아요
0
싫어요
채택취소하기

1. socketgethostname() 사용

socket.gethostname()는 파이썬 인터프리트가 현재 실행되고 있는 기계의 hostname을 스트링 형태로 return 해줍니다

import socket
socket.gethostname()

2. socketgethostbyaddr() 사용

gethostbyaddr(ip_address)(hostname, aliaslist, ipaddrlist)을 저장하고 있는 튜플을 return해 줍니다.

  • hostname: 인자로 들어온 ip_address와 대응하는 hostname
  • alias list: 같은 주소에 있는 다른 host name을 저장(대부분의 경우 empty)
  • ipaddrlist: 같은 host에서 상호작용(interface)하는 IPv4/v6 주소
import socket
socket.gethostbyaddr(socket.gethostname())[0]

3. osos.uname() 사용

os.uname()은 현재 OS에서 다음의 5개 정보(sysname, nodename, release, version, machine)를 받아 이를 튜플로 return합니다.

import os
myhost = os.uname()[1]

단, 일부 시스템에서 nodename을 8글자로 제한하는 경우가 있어, 1/2의 방법을 쓰는 것을 권장합니다.

  • 2016년 01월 21일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close