我正在为本地网络写一个聊天程序。我希望能够识别计算机,并获得用户设置的计算机名称与Python。
当前回答
我需要在PyLog conf文件中使用的PC的名称,并且套接字库不可用,但操作系统库可用。
对于Windows,我使用的是:
os.getenv('COMPUTERNAME', 'defaultValue')
哪里defaultValue是一个字符串,以防止None返回
其他回答
使用套接字及其gethostname()功能。这将得到运行Python解释器的计算机的主机名:
import socket
print(socket.gethostname())
这两个都是非常可移植的:
import platform
platform.node()
import socket
socket.gethostname()
任何使用HOST或HOSTNAME环境变量的解决方案都不能移植。即使它在您的系统上运行时可以工作,但在cron等特殊环境中运行时可能无法工作。
你必须执行这行代码
sock_name = socket.gethostname()
然后你可以使用名称来查找地址:
print(socket.gethostbyname(sock_name))
你可能会加载操作系统模块,所以另一个建议是:
import os
myhost = os.uname()[1]
从至少python >= 3.3:
你可以使用字段nodename,避免使用数组索引:
os.uname().nodename
虽然,甚至os的文档。Uname建议使用socket.gethostname()
推荐文章
- ValueError: numpy。Ndarray大小改变,可能表示二进制不兼容。期望从C头得到88,从PyObject得到80
- Anaconda /conda -安装特定的软件包版本
- 我在哪里调用Keras的BatchNormalization函数?
- 打印测试执行时间并使用py.test锁定缓慢的测试
- 插入一行到熊猫数据框架
- 要列出Pandas DataFrame列
- 在Django模型中存储电话号码的最佳方法是什么?
- 从导入的模块中模拟函数
- 滚动或滑动窗口迭代器?
- python的方法找到最大值和它的索引在一个列表?
- 如何读取文件的前N行?
- 如何删除matplotlib中的顶部和右侧轴?
- 解析.py文件,读取AST,修改它,然后写回修改后的源代码
- Visual Studio Code:如何调试Python脚本的参数
- 使用元组/列表等等。从输入vs直接引用类型如list/tuple/etc