programing

python 스크립트를 실행하는 Windows 컴퓨터의 이름을 가져오고 있습니까?

easyjava 2023. 4. 14. 22:15
반응형

python 스크립트를 실행하는 Windows 컴퓨터의 이름을 가져오고 있습니까?

네트워크에 파이썬 스크립트를 실행하는 Windows 컴퓨터가 몇 대 있습니다.이 스크립트를 실행하는 컴퓨터에 따라 스크립트에서 다른 구성 옵션 세트를 사용해야 합니다.

python 스크립트에서 컴퓨터 이름을 어떻게 얻을 수 있을까요?

예를 들어 스크립트가 DARK-TOWER라는 이름의 컴퓨터에서 실행되고 있다고 가정해 보겠습니다.이거는 다음과 같습니다.

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

사용할 수 있는 스탠다드 또는 서드파티 라이브러리가 있습니까?

3가지 옵션이 있는 것으로 나타났습니다(앞에서 답변한2가지 옵션 포함).

>>> import platform
>>> import socket
>>> import os
>>> platform.node()
'DARK-TOWER'
>>> socket.gethostname()
'DARK-TOWER'
>>> os.environ['COMPUTERNAME'] # WORK ONLY ON WINDOWS
'DARK-TOWER'
import socket
socket.gethostname()

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

import os
os.getenv('COMPUTERNAME')

에릭 팔라코비치 카가 말했듯이 이 세 가지 변종을 사용할 수 있습니다.

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

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

크로스패턴 어플리케이션을 개발할 때는 확실히 하는 것이 좋습니다.

Python Scrips는 Windows 시스템에서 실행되므로 Win32 API Get Computer Name 또는 Get Computer Name을 사용해야 합니다.

정규화된 DNS 이름 또는 NETB를 얻을 수 있습니다.IOS 이름 또는 다양한 이름.

import win32api
win32api.GetComputerName()

>>'MYNAME'

또는 다음 중 하나를 선택합니다.

import win32api
WIN32_ComputerNameDnsHostname = 1 
win32api.GetComputerNameEx(WIN32_ComputerNameDnsHostname)

>> u'MYNAME'
import socket
pc = socket.gethostname()
print pc

gethostname이 잘 작동하겠네요.

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

반응형