我正在为本地网络写一个聊天程序。我希望能够识别计算机,并获得用户设置的计算机名称与Python。
当前回答
你可能会加载操作系统模块,所以另一个建议是:
import os
myhost = os.uname()[1]
其他回答
使用套接字及其gethostname()功能。这将得到运行Python解释器的计算机的主机名:
import socket
print(socket.gethostname())
os.getenv('HOSTNAME')和os.getenv。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,看看它是否返回类似主机名的东西,如果不是,它就使用我原来的解决方案。
你必须执行这行代码
sock_name = socket.gethostname()
然后你可以使用名称来查找地址:
print(socket.gethostbyname(sock_name))
你可能会加载操作系统模块,所以另一个建议是:
import os
myhost = os.uname()[1]
使用socket.getfqdn()获取完全限定的主机名
import socket
print socket.getfqdn()
推荐文章
- 如何在Python中进行热编码?
- 如何嵌入HTML到IPython输出?
- 在Python生成器上使用“send”函数的目的是什么?
- 是否可以将已编译的.pyc文件反编译为.py文件?
- Django模型表单对象的自动创建日期
- 在Python中包装长行
- 如何计算两个时间串之间的时间间隔
- 我如何才能找到一个Python函数的参数的数量?
- 您可以使用生成器函数来做什么?
- 将Python诗歌与Docker集成
- 提取和保存视频帧
- 使用请求包时出现SSL InsecurePlatform错误
- 如何检索Pandas数据帧中的列数?
- except:和except的区别:
- 错误:“字典更新序列元素#0的长度为1;2是必需的”