Eri*_*arr 81 python windows networking
基本上,我的网络上有几台Windows计算机将运行python脚本.应在脚本中使用一组不同的配置选项,具体取决于运行此脚本的计算机.
我如何在python脚本中获取该计算机名称?
假设脚本在名为DARK-TOWER的计算机上运行,我想写这样的东西:
>>> python.library.get_computer_name()
'DARK-TOWER'
我可以使用标准或第三方库吗?
Eri*_*arr 137
事实证明有三个选项(包括之前已经回答过的两个选项):
>>> import platform
>>> import socket
>>> import os
>>> platform.node()
'DARK-TOWER'
>>> socket.gethostname()
'DARK-TOWER'
>>> os.environ['COMPUTERNAME']
'DARK-TOWER'
ink*_*dmn 29
import socket
socket.gethostname()
one*_*ter 20
来自https://mail.python.org/pipermail/python-list/2006-April/397494.html
import os
os.getenv('COMPUTERNAME')
Fam*_*tor 10
正如Eric 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")
在开发交叉模式应用程序时我更喜欢它;)
由于python scrips肯定在windows系统上运行,你应该使用Win32 API GetComputerName或GetComputerNameEx
您可以获得完全限定的DNS名称,NETBIOS名称或各种不同的东西.
import win32api
win32api.GetComputerName()
>>'MYNAME'
要么:
import win32api
WIN32_ComputerNameDnsHostname = 1 
win32api.GetComputerNameEx(WIN32_ComputerNameDnsHostname)
>> u'MYNAME'
| 归档时间: | 
 | 
| 查看次数: | 57518 次 | 
| 最近记录: |