代码之家  ›  专栏  ›  技术社区  ›  Eric Palakovich Carr

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

  •  72
  • Eric Palakovich Carr  · 技术社区  · 16 年前

    我的网络上有两台运行python脚本的Windows计算机。脚本中应使用一组不同的配置选项,具体取决于运行此脚本的计算机。

    如何在python脚本中获得该计算机名?

    假设脚本在一台名为DARK-TOWER的计算机上运行,我想这样写:

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

    6 回复  |  直到 4 年前
        1
  •  175
  •   Nick T twasbrillig    10 年前

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

    >>> import platform
    >>> import socket
    >>> import os
    >>> platform.node()
    'DARK-TOWER'
    >>> socket.gethostname()
    'DARK-TOWER'
    >>> os.environ['COMPUTERNAME']
    'DARK-TOWER'
    
        2
  •  40
  •   brettkelly    16 年前
    import socket
    socket.gethostname()
    
        3
  •  21
  •   twasbrillig    11 年前
        4
  •  15
  •   Eric Palakovich Carr    6 年前

    正如埃里克·帕拉科维奇·卡尔所说,你可以使用这三种变体。

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

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

        5
  •  8
  •   Brian R. Bondy    16 年前

    由于python脚本肯定在windows系统上运行,因此应该使用Win32 API GetComputerName GetComputerNameEx

    import win32api
    win32api.GetComputerName()
    
    >>'MYNAME'
    

    或:

    import win32api
    WIN32_ComputerNameDnsHostname = 1 
    win32api.GetComputerNameEx(WIN32_ComputerNameDnsHostname)
    
    >> u'MYNAME'
    
        6
  •  3
  •   Promit    16 年前

    我敢打赌 gethostname

        7
  •  3
  •   Pedro Muniz    6 年前
    import socket
    pc = socket.gethostname()
    print pc