如何使用Python获取系统主机名?

那年仲夏 提交于 2020-01-07 01:59:12

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我正在为本地网络编写聊天程序。 我希望能够识别计算机并使用Python获取用户设置的计算机名称。


#1楼

os.getenv('HOSTNAME')os.environ['HOSTNAME']并不总是有效。 在cron作业和WSDL中,未设置HTTP HOSTNAME。 请改用:

import socket
socket.gethostbyaddr(socket.gethostname())[0]

它总是(即使在Windows上)返回一个完全限定的主机名,即使您在/ etc / hosts中定义了一个短别名。

如果在/ etc / hosts中定义了别名,则socket.gethostname()将返回别名。 platform.uname()[1]做同样的事情。

我遇到了上述情况不起作用的情况。 这就是我现在使用的:

import socket
if socket.gethostname().find('.')>=0:
    name=socket.gethostname()
else:
    name=socket.gethostbyaddr(socket.gethostname())[0]

它首先调用gethostname以查看它是否返回看起来像主机名的内容,如果不是它使用我的原始解决方案。


#2楼

你可能会加载os模块,所以另一个建议是:

import os
myhost = os.uname()[1]

#3楼

我需要在我的PyLog配置文件中使用PC的名称,并且套接字库不可用,但是os库是。

对于Windows我用过:

os.getenv('COMPUTERNAME', 'defaultValue')

其中defaultValue是一个字符串,用于防止返回None


#4楼

使用socket及其gethostname()功能。 这将获取运行Python解释器的计算机的hostname

import socket
print(socket.gethostname())

#5楼

如果我是对的,你正在寻找socket.gethostname函数:

>> import socket
>> socket.gethostname()
'terminus'
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!