Python获取hostname的方法

2023年 10月 10日 89.1k 0

概述

目前共找到4种方法,均已实测有效。
综合考虑可靠性与跨平台,建议使用platform模块与Socket.gethostname()

1. os模块

不支持Windows平台,Linux亲测可用
windows平台下使用将会报错: AttributeError: module 'os' has no attribute 'uname'.

import os,platform
info = os.uname()
hostname = info.nodename

2. platform模块
支持跨平台,亲测Windows与Linux下可用。
```
import platform
hostname = platform.node()
```
3. Socket模块

3.1 Socket.gethostname()

通过Socket.gethostname()直接获取
支持跨平台,亲测Windows与Linux下可用。

import socket
hostname = socket.gethostname()

3.2 Socket.gethostbyaddr()

通过IP地址获取,在某些场景下适用,如已知本机或远程主机的ip,需获取hostname
支持跨平台,亲测Windows与Linux下可用。

但此方法不可靠,在某些场景下会报错:socket.herror: [Errno 11004] host not found

import socket
hostname = socket.gethostbyaddr("8.8.8.8")[0]

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论