your programing

파이썬 스크립트를 실행하는 Windows 컴퓨터의 이름을 얻고 있습니까?

lovepro 2020. 10. 11. 11:04
반응형

파이썬 스크립트를 실행하는 Windows 컴퓨터의 이름을 얻고 있습니까?


기본적으로 네트워크에 파이썬 스크립트를 실행할 Windows 컴퓨터가 두 대 있습니다. 이 스크립트를 실행하는 컴퓨터에 따라 다른 구성 옵션 집합을 스크립트에 사용해야합니다.

파이썬 스크립트에서 컴퓨터 이름을 어떻게 얻습니까?

스크립트가 DARK-TOWER라는 컴퓨터에서 실행되고 있다고 가정 해 보겠습니다. 다음과 같이 작성하고 싶습니다.

>>> python.library.get_computer_name()
'DARK-TOWER'

사용할 수있는 표준 또는 타사 라이브러리가 있습니까?


세 가지 옵션이있는 것으로 나타났습니다 (이미 답변 한 두 가지 옵션 포함).

>>> import platform
>>> import socket
>>> import os
>>> platform.node()
'DARK-TOWER'
>>> socket.gethostname()
'DARK-TOWER'
>>> os.environ['COMPUTERNAME']
'DARK-TOWER'

import socket
socket.gethostname()

에서 https://mail.python.org/pipermail/python-list/2006-April/397494.html

import os
os.getenv('COMPUTERNAME')

Eric Palakovich Carr가 말했듯이이 세 가지 변형을 사용할 수 있습니다.

함께 사용하는 것이 좋습니다.

def getpcname():
    n1 = platform.node()
    n2 = socket.gethostname()
    n3 = os.environ["COMPUTERNAME"]
    if n1 == n2 == n3:
        return n1
    elif n1 == n2:
        return n1
    elif n1 == n3:
        return n1
    elif n2 == n3:
        return n2
    else:
        raise Exception("Computernames are not equal to each other")

나는 그것을 확실히하기 위해 크로스 patform 애플리케이션을 개발할 때 그것을 선호한다;)


파이썬 스크립트는 Windows 시스템에서 확실히 실행되고 있으므로 Win32 API GetComputerName 또는 GetComputerNameEx를 사용해야합니다.

정규화 된 DNS 이름, NETBIOS 이름 또는 다양한 항목을 얻을 수 있습니다.

import win32api
win32api.GetComputerName()

>>'MYNAME'

또는:

import win32api
WIN32_ComputerNameDnsHostname = 1 
win32api.GetComputerNameEx(WIN32_ComputerNameDnsHostname)

>> u'MYNAME'

gethostname 이 아름답게 작동 할 것이라고 확신 합니다.


import socket
pc = socket.gethostname()
print pc

참고 URL : https://stackoverflow.com/questions/799767/getting-name-of-windows-computer-running-python-script

반응형