기본적으로 네트워크에 파이썬 스크립트를 실행할 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'
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)