正在获取运行python脚本的windows计算机的名称?

sqxo8psd  于 2023-01-14  发布在  Windows
关注(0)|答案(7)|浏览(117)

我的网络上有几台Windows计算机将运行Python脚本。根据运行此脚本的计算机,应该在脚本中使用一组不同的配置选项。
我怎样才能在python脚本中得到那个计算机名呢?
假设脚本运行在名为DARK-TOWER的计算机上,我想写这样的代码:

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

是否有我可以使用的标准库或第三方库?

ncgqoxb0

ncgqoxb01#

事实证明,有三种选择(包括前面已经回答的两种):

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

sd2nnvve2#

import socket
socket.gethostname()
l7wslrjt

l7wslrjt4#

正如Eric Palakovich卡尔所说,您可以使用这三种变体。
我更喜欢将它们一起使用:

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")

我更喜欢在开发跨平台应用程序时使用它;)

zzoitvuj

zzoitvuj5#

由于python脚本肯定是在Windows系统上运行的,因此应该使用Win32 API GetComputerNameGetComputerNameEx
您可以获得完全限定的DNS名称、NETBIOS名称或各种不同的名称。

import win32api
win32api.GetComputerName()

>>'MYNAME'

或者:

import win32api
WIN32_ComputerNameDnsHostname = 1 
win32api.GetComputerNameEx(WIN32_ComputerNameDnsHostname)

>> u'MYNAME'
kqhtkvqz

kqhtkvqz6#

import socket
pc = socket.gethostname()
print pc
qybjjes1

qybjjes17#

我敢打赌gethostname会工作得很漂亮。

相关问题