【推荐】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'
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3152625