我正在为本地网络写一个聊天程序。我希望能够识别计算机,并获得用户设置的计算机名称与Python。
当前回答
我需要在PyLog conf文件中使用的PC的名称,并且套接字库不可用,但操作系统库可用。
对于Windows,我使用的是:
os.getenv('COMPUTERNAME', 'defaultValue')
哪里defaultValue是一个字符串,以防止None返回
其他回答
你可能会加载操作系统模块,所以另一个建议是:
import os
myhost = os.uname()[1]
关于什么:
import platform
h = platform.uname()[1]
实际上,你可能想看看platform.uname()中的所有结果
使用socket.getfqdn()获取完全限定的主机名
import socket
print socket.getfqdn()
从至少python >= 3.3:
你可以使用字段nodename,避免使用数组索引:
os.uname().nodename
虽然,甚至os的文档。Uname建议使用socket.gethostname()
这两个都是非常可移植的:
import platform
platform.node()
import socket
socket.gethostname()
任何使用HOST或HOSTNAME环境变量的解决方案都不能移植。即使它在您的系统上运行时可以工作,但在cron等特殊环境中运行时可能无法工作。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录