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

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

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

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의 방법을 쓰는 것을 권장합니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.